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();