Php Laravel leftJoin从空值创建默认对象时出错
我正试图使用此控制器取出“超级管理员”:Php Laravel leftJoin从空值创建默认对象时出错,php,mysql,laravel,Php,Mysql,Laravel,我正试图使用此控制器取出“超级管理员”: $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) {{
$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与角色用户相同。用户ID
但我得到了一个错误:
从空值创建默认对象
有什么帮助吗?谢谢 从get中删除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);
}]);
从空值创建默认对象
$user->superadmin = DB::table('role_users AS ru')
->leftJoin('users AS u', 'u.id', '=', 'ru.user_id')
->where('role_id', '=', '5')
->select("u.*")
->get();
您需要将$user
定义为某个对象,然后再尝试对其设置属性(将其用作对象)
我不确定除了某个对象之外,您期望的$user
类型是什么。尝试以下操作:
$user->superadmin = DB::table('role_users')->select(['users.*'])
->leftjoin('users', 'users.id', '=', 'role_users.user_id')
->where('role_users.role_id','5')
->get();
陛下删除
'
后,同样的事情更改为->其中('role_id','=','5')
现在为foreach()提供了无效的参数。你想做什么?我正在尝试提取所有具有rolde_id 5的用户信息,还有$user->superadmin=查询它根本没有意义。噢,我的伤口。。。我犯了多么愚蠢的错误<代码>$user=user()代码>谢谢!
$user->superadmin = DB::table('role_users')->select(['users.*'])
->leftjoin('users', 'users.id', '=', 'role_users.user_id')
->where('role_users.role_id','5')
->get();