可以将数据透视表与 laravel 5.5 中的另一个数据透视表相关联吗?
Posted
技术标签:
【中文标题】可以将数据透视表与 laravel 5.5 中的另一个数据透视表相关联吗?【英文标题】:It is possible to relate a pivot table to another pivot table in laravel 5.5? 【发布时间】:2018-09-22 18:34:11 【问题描述】:计划
身份证 姓名帖子
身份证 标题用户
身份证 姓名分类
身份证 姓名plan_post //BelongsToMany
plan_id post_idplan_user //BelongsToMany
身份证 plan_id user_id我需要将类别与 pan_user 记录相关联...
plan_user_category // 什么 ??? plan_user_id category_id【问题讨论】:
嗨 - 为了便于阅读,您能否在正文中解释您的问题,而不仅仅是在您的模型中的评论中?谢谢! 【参考方案1】:不可能有这样的关系。如果您有一个数据透视表,它会绑定两个非数据透视表。
什么是数据透视表?这是一个没有增量的表。它绑定到它作为数据透视表的表的增量。如果表格有增量,则它不会自动旋转。
plan_user_category // what ???
plan_user_id // BelongsTo or BelongsToMany -> plan_user
category_id // BelongsTo or BelongsToMany -> categories
如果我理解正确的话,你希望有一个计划-用户-类别关系。
如果有,请制作下表:
计划(id,...) users_plans (user_id, plan_id) 用户(ID,...) users_categories (user_id, category_id) 类别(id,...)从计划到类别,有必要通过模型建立关系
class Plans
public function users()
return $this->belongsToMany('App\User', 'users_plans', 'user_id', 'plan_id');
class User
public function categories()
return $this->belongsToMany('App\Category', 'users_catogories', 'category_id', 'user_id');
foreach($plans->users() as $user)
$categories[] = $user->categories();
【讨论】:
我明白了,问题是我同步表plan_user的时候需要设置一个category引用,大家有什么建议吗?以上是关于可以将数据透视表与 laravel 5.5 中的另一个数据透视表相关联吗?的主要内容,如果未能解决你的问题,请参考以下文章