Laravel中一对一关系上的未定义属性错误

时间:2017-11-18 14:38:09

标签: laravel laravel-5 eloquent one-to-one laravel-eloquent

我有两个表,用户和个人资料。该表具有一对一的关系。我试图通过这种方式访问​​配置文件上的数据:

    return view('admin.users.profile')->with('user',User::find(Auth::id()) );

在我的刀片中,我这样做:

<input id="facebook" type="text" class="form-control" name="facebook" value="{{ old('facebook', $user->profile()->facebook) }}" required placeholder="Facebook">

所以我在这里做错了什么?这是我的用户模型:

public function profile(){
    return $this->hasOne('App\Profile');
}

我收到了这个错误:

"Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$facebook (View: E:\laragon\www\blog\resources\views\admin\users\profile.blade.php)"

1 个答案:

答案 0 :(得分:0)

Auth::user() 

返回用户。然后使用

找到用户ID
Auth::user()->id.

return view('admin.users.profile')->with('user',User::find(Auth::user()->id));

在你的刀片中

<input id="facebook" type="text" class="form-control" name="facebook" value="{{ $user->profile->facebook }}" required placeholder="Facebook">

使用$ user-&gt;个人资料 - &gt; facebook代替$ user-&gt;个人资料() - &gt; facebook