Laravel 有很多关系
Laravel hasMany relationship
我有三个 table,stores
,store_categories
和 product_categories
。每个table的结构如下
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');
}
所以要获取商店的所有数据,我写 i StoresController
$res = Store::with('store_categories')->get(); dump($res);
但是转储显示 store_id
和 product_category_id
的关系。如何显示他们的名称(即商店名称、产品类别名称等)?
您需要添加如下多对多关系:
<?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);
我有三个 table,stores
,store_categories
和 product_categories
。每个table的结构如下
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');
}
所以要获取商店的所有数据,我写 i StoresController
$res = Store::with('store_categories')->get(); dump($res);
但是转储显示 store_id
和 product_category_id
的关系。如何显示他们的名称(即商店名称、产品类别名称等)?
您需要添加如下多对多关系:
<?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);