laravelbelongtomany方法不返回任何内容

xjreopfe  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(365)

我正在拉雷维尔实施多对多关系。实体包括:
users roles 数据透视表 user_role ```
Users

id
name
.....

roles

id
role
...

user_role

userId
roleId

尝试各种方法来获得 `roles` 的 `user` 但到目前为止运气不好。有什么想法吗?
最后一次尝试是:

/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function roles()
{
return $this->belongsToMany(Role::class, 'user_role', 'userId', 'roleId');
}

laravel tinker的电流输出:

$user->roles()
=> Illuminate\Database\Eloquent\Relations\BelongsToMany {#2380
+withTimestamps: false,

nwlqm0z1

nwlqm0z11#

$user->roles() 只是对关系的查询,不执行
你可以用

$user->roles

如果您不需要添加额外的条件或

$user->roles()->where(your conditions)->get()

对于更复杂的关系查询。
关键区别在于pharentesis的用法: ->roles->roles() . 前者返回查询结果,后者返回查询本身

相关问题