Это будет работать
$brandData = \DB::table('brands')->orderBy("brands.id")->get();
foreach ($brandData as $brand) {
$brand->raw_materials = \DB::table("raw_materials")->where("brand_id", $brand->id)->get();
}
return view('rawmaterials.index', [
'brandData'=>$brandData
]);
Тогда, по вашему мнению, вы будете использовать вложенные как это ...
@foreach ($brandData as $brand)
<p>Brand Name: {{$brand->name}}</p>
@foreach($brand->raw_materials as $raw)
<p>{{$raw->name}} | Quantity: {{$raw->quantity}}</p>
@endforeach
<br>
@endforeach
Это должно сделать работу.
С другой стороны, если вы хотите использовать Eloquent, вы должны установить отношения как в модели Brand, так и в модели RawMaterial следующим образом, предполагая, что модели Brand и RawMaterial находятся непосредственно в папке приложения
class Brand extends Model
{
public function raw_materials()
{
return $this->hasMany('App\RawMaterial');
}
}
class RawMaterial extends Model
{
public function brand()
{
return $this->belongsTo('App\Brand');
}
}
Тогдав вашем контроллере вы просто делаете это ...
$brandData = \App\Brand::with("raw_materials")->orderBy("id")->get();
Нет необходимости изменять синтаксис блейда в вашем файле .blade, поскольку применяется тот же цикл foreach