2016-11-14 6 views
1

laravelを使用してデータを更新します。私はモデルの中で関数を作り、そのメソッドをコントローラの中で使っていますが、メソッドを呼び出すときには次のように新しいid.functionでデータを挿入します。Laravel save() - 代わりにデータを挿入します。

public function edit_client($req,$id) { 
    $client = new client(); 
    $client->find($id); 
    $client->name = $req->name; 
    $client->address = $req->address; 
    $client->email = $req->email; 
    $client->phone = $req->phone; 
    $client->gender = $req->gender; 
    $client->department = $req->department; 
    $client->update();} 
+0

はい;' ..削除するか、この行をコメントして、再試行してください: –

+0

新しいレコードを挿入しています。 –

+1

はい 'save()'は新しいレコードを挿入します。 $ client-> update();と – Michel

答えて

2

は、この例を試してみてください。
+1

真剣に?あなたは私の答えを最良の答えとしてチェックしました。あなたの友人の一人が何も変更せずに自分のコードをコピーして貼り付け、あなたはそれを取り除き、彼の答えをチェックしました。いい動き。 –

3

あなたは代わりにこれを行うことができます。

public function edit_client($req,$id) { 
    $client = Client::find($id); 
    $client->name = $req->name; 
    $client->address = $req->address; 
    $client->email = $req->email; 
    $client->phone = $req->phone; 
    $client->gender = $req->gender; 
    $client->department = $req->department; 
    $client->save(); 
} 

それともupdate()メソッドを使用します。あなたは$fillable配列を追加することを忘れないでください、update()方法を使用することを決定します場合

public function edit_client($req,$id) { 
    $client = Client::where('id', $id)->update([ 
     'name' = $req->name, 
     'address' = $req->address, 
     'email' = $req->email, 
     'phone' = $req->phone, 
     'gender' = $req->gender, 
     'department' = $req->department 
    ]); 
} 

を。なぜなら、 `$クライアント=新しいクライアント()で、

$obj= Client::where('id', $id)->update([ 
     'name' = $req->name, 
     'address' = $req->address, 
     'email' = $req->email, 
     'phone' = $req->phone, 
     'gender' = $req->gender, 
     'department' = $req->department 
    ]); 
+0

ありがとうございます。一つの質問 ?関数が同じモデルになっているので、$ clientの代わりに$ thisを使うことができます。 –

+1

モデルでこのコードを使用することにしたければ、次のように使用する必要があります: 'return $ this-> where( 'id'、$ id) - > update(....);' –

+0

私は$ this-> save()を使うかもしれません。私はインスタンスを作成せずに意味します。 –

関連する問題