2016-11-23 4 views
1

save()メソッドを使用するようにレコードを更新しようとしましたが、レコードをデータベースで更新できません。保存メソッドが能動的でない

これは私のコードです:問題です

public function update(Request $request, $id) 
    { 
     $rules = [ 
      'email' => 'required|email', 
      'firstname' => 'required', 
      'lastname' => 'required' 
     ]; 

     $validator = Validator::make($request->all(), $rules); 

     if ($validator->fails()) { 
      return redirect()->back()->withErrors($validator)->withInput(); 
     } else { 
      $a = Users::find($id)->save($request->all()); 
     } 

     return redirect()->to('admin/users/'.$id); 
    } 

何?

P.S:問題なくメソッドを作成できます。あなたがmass assignmentを使用しているいずれの場合も、

$a = Users::find($id)->fill($request->all())->save(); 

ので、あなたがしているすべてのプロパティを追加します。

答えて

2

利用代わりupdate()方法:

Users::where('id', $id)->update($request->except(['_method', '_token'])); 

または手動でデータを埋めるためにfill()を使用しようとは$fillableアレイに更新しようとしています。

+0

私はこのエラーを受け取りました。 "未定義のメソッドを呼び出す\データベース\クエリ\ビルダー:: save()' – MajAfy

+0

@MajAfy 'save()'を ' –

+0

ありがとうございましたが、結果は "フィールドリストに未知の列 '_method'があります。' $ guarded'に '_method'を追加しました – MajAfy

関連する問題