0

我有三个表库存,产品,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

4

2 回答 2

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');   
}

文档

于 2016-11-15T06:06:28.637 回答
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(); 
于 2016-11-15T05:51:50.467 回答