如何在laravel中将嵌套关系数组转换为单个数组

busg9geu  于 2021-06-15  发布在  Mysql
关注(0)|答案(3)|浏览(274)

项目模型:

public function item_makes(){
     return $this->hasMany(ItemMake::class,'item_id','id');
}

在itemmake模型中:

public function make(){
    return $this->belongsTo(Make::class,'make_id','id');
}

我需要根据项目id获取所有make的数组。如何实现这一点?提前谢谢。

dgtucam1

dgtucam11#

尝试以下操作:

Item::findOrFail(1)
    ->with('item_makes.make')
    ->get()
    ->pluck('make')
    ->flatten()
    ->toArray()
soat7uwm

soat7uwm2#

尝试 wherehas 像这样的方法

$makes = Make::whereHas('item_makes', function ($query) use($item_id) {
   $query->where('item_id',  $item_id);
})->get();
hs1ihplo

hs1ihplo3#

这对我有用。

$item = Item::findOrFail(1)
         ->item_makes()
         ->with('make')
         ->get()
         ->pluck('make')
         ->flatten()
         ->toArray();

相关问题