我希望通过一个查询从四个表中获取所有数据。我的桌子
分类
id
name
小类
id
name
categories_subcategories
id
category_id
subcategory_id
项目
id
name
category_subcategory_id
一个产品可以在一个类别和子类别中,我有类别和子类别之间的查询,并希望添加到此项目表。
namespace App;
use Illuminate\Database\Eloquent\Model;
class Subcategory extends Model
{
protected $fillable = [
'id',
'name',
];
protected $table = 'subcategories';
public function categoriesTwoLevel()
{
return $this->belongsToMany(CategoriesTwoLevel::class, 'categories_subcategories', 'subcategories_id','categories_id');
}
}
class Categories extends Model
{
protected $fillable = [
'id',
'name',
];
protected $table = 'categories_two_level';
protected $timestamp = false;
public function subcategory()
{
return $this->belongsToMany(Subcategory::class, 'categories_subcategories', 'categories_id', 'subcategories_id')->withPivot('id');
}
}
这是通过表categories_subcategories从子类别和类别表中获取所有数据的查询
CategoriesTwoLevel::with('subcategory')->get();
但表项目不可用。
使用dot notation to load nested relationships数据:
Categories::with('subcategory.categoriesTwoLevel.items')->get();
如果您正确定义了所有这些关系,这将有效。