我正在尝试使用此控制器来淘汰“超级管理员”:
$user->superadmin = DB::table('role_users AS ru')
->leftJoin('users AS u', 'u.id', '=', 'ru.user_id')
->where('role_id', '=', '5')
->select("u.*")
->get('');
和刀片:
@foreach ($user->superadmin as $superadmin)
{{ $superadmin->username }}
@endforeach
“用户” 表具有唯一的 ID 。该唯一ID与 role_users.user_id 相同。
但是我遇到了错误:
从空值创建默认对象
有帮助吗?谢谢!
答案 0 :(得分:1)
$user->superadmin = ...;
从空值创建默认对象
您需要先将$user
定义为某个对象,然后再尝试在其上设置属性(将其用作对象)。
$user = new stdClass;
$user->superadmin = ...;
我不确定您希望$user
除某种对象之外还有什么类型。
答案 1 :(得分:0)
从获取方式get(' ')
中删除''
,它将选择一个空值
$user->superadmin = DB::table('role_users AS ru')
->leftJoin('users AS u', 'u.id', '=', 'ru.user_id')
->where('role_id', '=', '5')
->select("u.*")
->get();
要获取具有特定角色ID的用户:
User::with(['role_users'=>function($user) use($someId){
$user->where('role_id', $someId);
}]);
答案 2 :(得分:0)
尝试一下:
$user->superadmin = DB::table('role_users')->select(['users.*'])
->leftjoin('users', 'users.id', '=', 'role_users.user_id')
->where('role_users.role_id','5')
->get();