我有三个表库存,产品,product_category
表格中的:广告资源
id product_name quantity
1 2 24
2 2 54653
3 1 34
这里product_name是外键..这个表与产品表有很多关系
表中的:产品
id name type_fk_id
1 pc 1
2 laptop 2
3 servo_oil 2
这里type_fk_id是外键..这个表与 product_category 表有很多关系
表格中的: product_category
id type_name
1 PC
2 oil
3 servo_oil
product_category表中没有外键
在我的控制器中
$data=Inventory::all();
return view('inv_view',compact('data'));
在inv_view视图中
@foreach($data as $inv)
{{$inv->id}}
{{$inv->qty}}
@endforeach
我想在视图中显示产品名称和类别,这意味着
id quantity product_name category
1 34 pc pc
2 436 servo_oil oil
我不知道如何使用laravel eloquent关系访问或获取此数据
我知道如何在模型中使用 hasmanyThrough 来访问product_category->product->inventory
...我如何使用反向的hasmanythrough ,这意味着inventory->product->product_category
答案 0 :(得分:2)
试试这个:
$data=Inventory::with('product.product_category')->get();
return view('inv_view',compact('data'));
内幕视图
@foreach($data as $inv)
{{ $inv->id }}
{{ $inv->qty }}
{{ $inv->product->name }}
{{ $inv->product->product_category->type_name }}
@endforeach
定义您的模型关系,如下所示:
应用\库存
public function product() {
return $this->belongsTo('App\Product', 'product_name');
}
应用\产品
public function inventory(){
return $this->hasMany('App\Inventory');
}
public function product_category() {
return $this->belongsTo('App\ProductCategory', 'type_fk_id');
}
应用\产品分类
public function product() {
return $this->hasMany('App\Product');
}
答案 1 :(得分:0)
尝试这样做
使用外键加入您的表
$products = DB::table('products')
->join('inventory', 'products.id', '=', 'inventory.product_id')
->join('product_category', 'products.id', '=', 'product_category.product_id')
->select('products.*','product_category.category as category_name')
->get();