四个表查询



我想通过一个查询从四个表中获取所有数据。我的桌子

类别

id
name

子类别

id
name

类别_subCategories

id
category_id
subcategory_id

项目

id
name
category_subcategory_id

一种产品可以属于一个类别和子类别,我在类别和子类别之间进行了查询,并且想添加到此项目表中。

namespace App;
use IlluminateDatabaseEloquentModel;
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();

但表项目尚不可用。

使用点符号加载嵌套关系数据:

Categories::with('subcategory.categoriesTwoLevel.items')->get();

如果您正确定义了所有这些关系,这将起作用。

最新更新