四个表查询 - laravel

问题描述 投票:0回答:1

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

分类

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();

但表项目不可用。

mysql laravel eloquent many-to-many one-to-many
1个回答
0
投票

使用dot notation to load nested relationships数据:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.