【发布时间】:2023-03-28 07:50:01
【问题描述】:
您好,我正在使用 Laravel 和 Eloquent 来存储用户、个人资料和分配的角色。我的表结构如下;
users
id | username | email | password | created_at | updated_at
profiles
id | user_id | firstname | created_at | updated_at
roles
id | name
assigned_roles
id | user_id | role_id
我正在尝试选择角色名称等于 admin 的所有用户。但是当我执行以下操作时,我得到一个空数组:
return \User::with('profile')->join('assigned_roles', function ($join) {
$join->where('assigned_roles.user_id', '=', 'users.id');
})->get();
任何想法我做错了什么?
我也在使用 Zizaco Entrust and Confide https://github.com/Zizaco/entrust/tree/1.0
【问题讨论】:
-
@trincot 不,这是正确的。我在 app/models/User.php 中有一个定义关系的函数
-
只是为了确保...您在“assigned_roles”中为您的用户定义了角色?如果没有对应的行,则不会返回任何结果。
-
@jedrzej.kurylo 我没有这个模型我正在使用github.com/Zizaco/entrust/tree/1.0,但它没有这样做的功能
-
好的,但是“assigned_roles”表中有数据吗?
-
是的,有数据表明@jedrzej.kurylo
标签: php laravel join laravel-4 eloquent