Laravel Auth ::用户关系

El *_*bre 5 laravel

Laravel中,我试图显示Auth :: user用户)和Departments之间的关系元素。在用户表中,我具有idnamedepartment_id。在Departments表中,我具有idname

在用户模型中,我创建

public function department()
    {
        return $this->belongsTo('App\Models\Department');
    }
Run Code Online (Sandbox Code Playgroud)

然后,在刀片模板中尝试

Auth :: user()->部门

但是返回null,不显示链接的 部门。Null不正确,所有用户都有部门。o,有帮助吗?¿关系有什么问题?

aci*_*azz 18

此方法使用较少的查询 - 其他方法会查询用户表两次:


auth()->user()->load(['department']);

Run Code Online (Sandbox Code Playgroud)


小智 7

你可以试试这个 User::with('departmento')->find(Auth::id());


Vas*_*yak 5

在调用belongsTo 方法时,您应该添加'department_id' 作为第二个参数($foreignKey),因为它默认会搜索departmento_id。

public function departamento()
{
    return $this->belongsTo('App\Models\Departamento', 'department_id');
}
Run Code Online (Sandbox Code Playgroud)

或者只是将 User::departamento() 方法重命名为 User::department()

public function department()
{
    return $this->belongsTo('App\Models\Departamento');
}
Run Code Online (Sandbox Code Playgroud)