与3表的雄辩关系

Posted

技术标签:

【中文标题】与3表的雄辩关系【英文标题】:Eloquent relationship with 3 table 【发布时间】:2019-02-01 07:44:27 【问题描述】:

我是 laravel 的新手。我被 laravel 关系困住了。 我有 2 个表如下:asset_category (id,name,parent_id) 这里 parent_id 参考 id asset_categoryasset_maintenace_category(id,name,parent_id) 这里 parent_id 参考 id asset_category 表 简而言之,我有类别、它们的子类别和维护类别(maintenance_category 可以是 category_idsubcategory_id 的一部分) 我必须在表格中显示所有类别,例如:

S.No|category     |sub-category|maintenace_category
----------------------------------------------------
  1.|Activity area| Arena      |clean and surfacing
  2.|Activity area| Arena      |surfacing
  3.|Activity area|            |General maintenance

那么我如何定义这些表之间的雄辩关系并显示结果呢? 请推荐

【问题讨论】:

你必须与asset_category表建立自我关系,并与asset_maintenance_category表建立关系 【参考方案1】:

首先设置你的外键,然后尝试像这样连接表:

Parent::where('parent.id', '=', id)
        ->join('asset_category' , 'asset_category.parent_id', '=', 'parent.id')
        ->join('asset_maintenace_category', 'asset_maintenace_category.parent_id','=', 'parent.id')
        ->select('parents. ...' ,
            'asset_category. ...' ,
            'asset_maintenace_category. ...'
            )
        ->get();

【讨论】:

以上是关于与3表的雄辩关系的主要内容,如果未能解决你的问题,请参考以下文章

如何从雄辩关系中的第三个表中获取数据雄辩的多对多关系

laravel 雄辩的关系 3 模型

如何使用父枢轴值作为条件获得雄辩的关系

雄辩的多对多关系总是空的

与模型属性的 where 条件的雄辩关系

雄辩地查询与嵌套 WHERE 的关系