四个表查询 - laravel

时间:2017-12-25 10:20:42

标签: mysql laravel eloquent many-to-many one-to-many

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

分类

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

但是表格项目不可用。

1 个答案:

答案 0 :(得分:0)

使用dot notation to load nested relationships数据:

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

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