簡體   English   中英

Laravel:如何在另一個表的所有行中以數組格式獲取M:M關系的特定列數據

[英]Laravel: How to get specific column data of M:M relationship in array format in all row of a another table

Laravel eloquent查詢從M:M關系中獲取數據

person_table : id, name_of_person
skills_table : id, name_of_skill
M:M table    : person_table_id , skills_table_id

結果將是

{
  id: 1,
  name: harat,
  skills: [
    'php',
    'laravel',
    'reactjs',
    'nodejs',
  ]
}

如果您查看文檔,您將看到可以使用with以便您可以立即加載skills

所以,你應該有這樣的代碼:

$person = Person::with('skills')->first();

然后如果你執行$person->skills你應該有一個Collection (不是一個數組)來保存所有的技能,比如id: 1, name: php , id:2, name: laravel等等。

所以,你應該格式化你的結果模型,如:

$person->map(function (Person $person) {
    return [
        'id' => $person->id,
        'name' => $person->name,
        'skills' => $person->skills->pluck('name'),
    ];
});

您還可以利用API Resources來格式化輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM