Laravel用户身份验证关系模型

时间:2018-01-14 20:35:35

标签: laravel eloquent

如何通过身份验证登录获取另一个表?以及如何在视图中显示表的数据?我尝试过关系,但我不知道是否正确...

class Login extends Authenticatable
{
    protected $table = "users";

    public function userProfile()
    {
        return $this->belongsTo(UserProfile::class)->select('id', 'photo', 'friendly_url');
    }

此返回关系为null: DD(AUTH() - >用户())

Login {#307 ▼
  #table: "users"
  #relations: []

1 个答案:

答案 0 :(得分:0)

模型的

relations属性仅显示已加载的关系。

要为授权用户模型加载关系Eager loading

$user = auth()->user();
$user->load('userProfile');
dd($user->userProfile);

然后,您可以在视图中将用户个人资料数据引用为:

$user->userProfile->friendly_url

另外,我建议您将此关系称为profile(),而不是userProfile(),以避免重复用户'字。

最佳解决方案 - 将用户个人资料数据保存在users表中。这样做更简单,并且减少了对您的数据库的请求数量。