2017-06-06 44 views
0

我想允許用戶更新他們的個人資料頁面上創建的,但是我得到一個錯誤信息說我試圖嘗試給非對象的屬性非對象的屬性:Laravel嘗試分配

enter image description here

但是用戶和twitter確實有價值。

在數據庫字段中被稱爲twitter_personal,當然id是一個id。

控制器:

function updateProfile(Request $request) { 
    $user = Auth::id(); 
    $twitter = $request->input('twitter'); 
    $user->twitter_personal = $twitter; 
    $user->save(); 
    if($user->save()) { 
    $message = 'Success'; 
    }else{ 
    $message = 'Error'; 
    } 
    return redirect()->back()->withInput()->with('message', $message); 

}

形式:

  <form class="form-horizontal" role="form" method="POST" action="{{ action('[email protected]') }}"> 
       {{ csrf_field() }} 
       <div class="form-group{{ $errors->has('url') ? ' has-error' : '' }}"> 
        <label for="twitter" class="col-md-4 control-label">Twitter</label> 
       <div class="col-md-6"> 
       <input id="twitter" type="text" class="form-control" name="twitter"> 
       @if ($errors->has('url')) 
       <span class="help-block"> 
        <strong>{{ $errors->first('url') }}</strong> 
       </span> 
       @endif 
     </div> 
    </div> 

所以這裏的問題,我該怎麼解決呢?有沒有更好的方法呢?如果是的話請舉個例子!

+0

'$ user'是'Auth :: id()',它是一個id。它應該是'Auth :: user()' – apokryfos

+0

true,工作正常。這個功能是不錯的做法嗎?或者使用其他方法可以更好地完成//編輯將其作爲答案,因此我可以標記它 – Przemek

+1

有些人認爲使用外牆不是好習慣。我認爲laravel很好。如果你想避免使用'Auth'外觀,你可以這樣做:'$ request-> user()'而不是 – apokryfos

回答

2

功能Auth::id()將返回當前認證用戶的標識符。

如果您需要的用戶模型相反,你應該用戶:

Auth::user() 

如果你不是喜歡不使用你可以得到用戶與當前請求相關的Auth門面:

$request->user()