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

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

Laravel 雄辯,基于 Column 值創建集合

Laravel 雄辯,基于 Column 值創建集合

PHP
泛舟湖上清波郎朗 2022-10-14 14:47:47
我有一個示例表,如下所示:| id | is_new | cate || 0  |   1    | [5]  || 1  |   1    | [5]  || 2  |   1    | [7]  || 3  |   1    | [6]  |在我調用以下函數之后   $product = Products::where('is_new', 1)->get();該集合具有以下數據結構Collection {#1284 ▼  #items: array:4 [▼    0 => Products {#1285 ?}    1 => Products {#1286 ?}    2 => Products {#1287 ?}    3 => Products {#1288 ?}  ]}我還可以通過以下方式返回類別 ID 列表:    $category = Category::where('type', 2)->pluck('id')->all();  我想知道有沒有什么好的方法來實現基于 cate 的以下結構(或類似結構)。我可以使用蠻力方法通過循環 $category 然后手動添加到新集合來創建它,我認為有更好的方法來做到這一點。Collection {#1284 ▼  #items: array:3 [▼    5 => array:2 [▼         0 => Products {#1285 ?}         1 => Products {#1286 ?}         ]    6 => Products {#1287 ?}    or  6 => array:1 [ 0 => Products {#1287 ?} ]    7 => Products {#1288 ?}  ]}基于答案的解決方案更新:$product->groupBy(function($item) {        return $item['cate'][0]; //because the entry is a list    });
查看完整描述

1 回答

?
幕布斯7119047

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

你應該看看使用類似的東西groupBy將你的類別組合在一起。它可以使用外鍵在數據庫級別(假設您具有引用完整性)上完成。您還可以保證返回的是每個類別的數組,這將使事情更加一致(您不需要檢查它是數組還是 , 的實例Products)。

如果您的類別像數組一樣存儲,您可能需要更改數據庫布局,但為此您應該使用中間表 - 查看多對多關系。


查看完整回答
反對 回復 2022-10-14
  • 1 回答
  • 0 關注
  • 242 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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