【问题标题】:It is possible to relate a pivot table to another pivot table in laravel 5.5?可以将数据透视表与 laravel 5.5 中的另一个数据透视表相关联吗?
【发布时间】:2018-09-22 18:34:11
【问题描述】:
  • 计划

    • 身份证
    • 姓名
  • 帖子

    • 身份证
    • 标题
  • 用户

    • 身份证
    • 姓名
  • 分类

    • 身份证
    • 姓名
  • plan_post //BelongsToMany

    • plan_id
    • post_id
  • plan_user //BelongsToMany

    • 身份证
    • plan_id
    • user_id
  • 我需要将类别与 pan_user 记录相关联...

  • plan_user_category // 什么 ???
    • plan_user_id
    • category_id

【问题讨论】:

  • 嗨 - 为了便于阅读,您能否在正文中解释您的问题,而不仅仅是在您的模型中的评论中?谢谢!

标签: laravel pivot relationship


【解决方案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引用,大家有什么建议吗?
猜你喜欢
  • 2020-06-18
  • 2021-02-06
  • 2018-04-10
  • 2020-03-23
  • 1970-01-01
  • 2014-08-26
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多