【发布时间】:2023-04-06 18:58:01
【问题描述】:
鉴于此表结构:
我的模型上有一个members 关系。
public function members() {
return $this->belongsToMany('App\User', 'group_members')->withPivot('status', 'right_rid')->withTimestamps();
}
当我调用这个函数时,它会返回一个特定函数的成员。
现在我想调用一个名为 rights 或类似名称的函数,它将在一行代码中返回 right_id 和 rights 表的类型。
现在,当我想要成员的right_id 时,我使用此行:
$group->members->where('id', Auth::user()->id)->first()->pivot->right_id
但是我没有rights 类型,因为right_id 在group_members 表中。
我希望它像这样工作:
$group->members->where('id', Auth::user()->id)->first()->rights
我希望这些信息足以给我一些建议,甚至是解决这个问题的方法。
我知道这也可以通过自定义查询来完成,但我喜欢 Laravel 的工作方式。
【问题讨论】:
-
我已经修改了你的一些条款,应该没问题。
-
乍一看在您的数据库结构图像中您有
rights_rid,但随后您的代码中显示为right_id。 -
当您的所有表都没有时间戳时,您还有
withTimestamps()。 -
您能解释一下您当前的表结构(用文字)和/或您设想的关系如何工作(用文字)吗?
group_members看起来像是一个错误 - 您实际上是在为用户和组之间的 link 分配权限。我希望权限属于用户或组。不知道你的目标是什么......
标签: php laravel laravel-5 eloquent laravel-5.2