我有三个表,stores
,store_categories
和product_categories
。每个表的结构如下
stores
id name
1 Mystore
store_categories
id store_id product_category_id
1 1 1
2 1 2
product_categories
id name
1 Grocery
2 Vegetable
在我的Store
模型中,我写了关系
public function store_categories(){
return $this->hasMany('App\StoreCategory');
}
为了获得商店的所有数据,我写了StoresController
$res = Store::with('store_categories')->get(); dump($res);
但转储在关系中显示store_id
和product_category_id
。如何显示其名称(即商店名称,产品类别名称等)?
答案 0 :(得分:1)
您需要添加“多对多”关系,如下所示:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Store extends Model
{
/**
* The roles that belong to the user.
*/
public function categories()
{
return $this->belongsToMany('App\ProductCategory','store_categories','store_id','product_category_id');
}
}
然后您可以执行以下操作:
$res = Store::with('categories')->get(); dump($res);