【问题标题】:Laravel: get Many-to-Many column dataLaravel:获取多对多列数据
【发布时间】:2014-10-14 22:59:18
【问题描述】:

大家好,

我有一个用户关系数据透视表如下:

id | user_id | relation_id | relationship
1    4         2             tutor
1    4         3             parent

由于各种原因,该表将用户与一对一相关联。

我正在尝试获取 $user 中的关系列。我已设法拉取相关用户 细节没问题 - $user->relations.

但是,我只需要建立关系 - 例如。导师或家长。 我对$relative->pivot->relationship没有骰子

有什么想法吗?感谢您抽出宝贵时间提供帮助。

@foreach($user->relations as $index=>$relative)
    {{ $relative->first_name . ' ' . $relative->last_name}}
    {{ $relative->pivot->relationship }}
@endforeach

【问题讨论】:

    标签: laravel many-to-many eloquent


    【解决方案1】:

    要访问->pivot->whatever,您需要将withPivot('whatever') 添加到关系定义中:

    public function relations()
    {
      return $this->belongsToMany('Relation')->withPivot('relationship');
    }
    

    注意:我不会在这里使用 relationsRelation 名称,因为它会产生误导,并且可能会与 Eloquent\Model 的内容发生冲突。

    【讨论】:

    • 头奖。非常感谢贾雷克。是的,我同意你对关系术语的看法。您是否知道 users_users 类型表的约定?后者对我来说似乎是错误的。再次感谢。
    • 视情况而定。例如,它可能被称为friends。如果我不知道您的架构和应用程序,很难提出建议。
    猜你喜欢
    • 1970-01-01
    • 2015-04-05
    • 2019-05-23
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多