如何将其他表与Auth :: user

时间:2017-05-26 00:41:06

标签: laravel

关于Laravel的文档,要检索经过身份验证的用户:

$user = Auth::user();

这是我的表架构(示例)

tblUser
   id // 1
   userid // admin
   password // 12345

tblUserInfo
   id // 1
   userid // admin
   first_name // Roi

是否可以将tblUserInfo与经过身份验证的用户相关联?例如

Auth::user()->with('userinfo')->first_name;

或者在我点击视图之前有没有办法从经过身份验证的用户获取first_name?

1 个答案:

答案 0 :(得分:3)

你应该能够做到

$firstname = Auth::user()->userinfo->first_name;

这假设您已正确定义了您的关系。

的内容
class User extends Authenticatable
{
    // ...

    public function userinfo()
    {
        return $this->hasOne(UserInfo::class);
    }
}

鉴于您的非标准表架构,您可能需要在hasOne()方法中明确指定外键和本地键的列名 - 相应的第二和第三参数。

    return $this->hasOne(UserInfo::class, 'id', 'id'); // or 'userid' depending on what you're using as a FK
                                           ^^^^^^^^^