亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 通過關系 id 收集數據

Laravel 通過關系 id 收集數據

PHP
慕無忌1623718 2023-04-28 16:01:50
在我的應用程序中,我有一個帖子表、類別表和 category_post 表,因為帖子和類別具有多對多關系。我想獲取所有帖子及其附加類別,但也將它們分組在一起,因為在我的前端我想循環一個對象并顯示這樣的列表,烹飪職位編號 1帖子編號 3職位編號 4音樂職位編號 2帖子編號 5語言郵政編號 6郵政編號 7我知道在我的控制器中我可以做到這一點,$posts = Post::with('categories')->get();但是我不知道如何對關系屬性進行分組,或者我是否可以以可以循環遍歷它以形成下面的列表的方式來構造返回的數據。
查看完整描述

3 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

您可以從數據庫中獲取數據,然后按照您想要的方式對它們進行分組:


$posts = Post::with('categories')->get();


$result = $posts->groupBy([

    'categories',

    function ($item) {

        return $item['category_name'];

    },

], $preserveKeys = true);

有關按關系字段分組的更多詳細信息:


https://laravel.com/docs/7.x/collections#method-groupby


查看完整回答
反對 回復 2023-04-28
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

根據給定的表:posts 和 categories 表是主表,category_post 表是一個數據透視表,其中包含 posts 和 categories 表之間的關系:


所以,你的關系應該是 posts->category_post->categories


$posts = Posts::with('category_post')->get();


$grouped = $posts->groupBy('category_post.category_id');


category_post 還與類別數據的類別表相關。


查看完整回答
反對 回復 2023-04-28
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

belongsToMany在類別模型中,您可以像下面這樣設置和關系


function posts()

{

? ?return $this->beongsToMany(Post::class, 'category_post', 'category_id', 'post_id');

}


查看完整回答
反對 回復 2023-04-28
  • 3 回答
  • 0 關注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號