繁体   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