2017-02-19 6 views
0

私はLaravel 5.4を使用しています。私は2つの関数(挿入と更新)を作った。 idが見つからない場合は、挿入されません。それ以外の場合は、updateメソッドにヒットします。 すべて正常に機能していますが、update elequentクエリがテーブルを更新していません。この方法は、angularjs http.post方法Elequentクエリを使用してLaravel 5.4のテーブルを更新できません

コントローラ機能のためのものである:

public function postUserJson(Request $req) 
{ 
    //return "check". $req->input('id'); 

    if ($req->input('id')=='') { 
     $user = new User(); 
     $user->UserName = $req->input('username'); 
     $user->Password = $req->input('password'); 

     $user->save(); 
     return "inserted"; 
    } else { 
     $check= User::find($req->input('id')); 

     // $check->ID = $req->input('id'); 
     $check->UserName = $req->input('username'); 
     $check->Password = $req->input('password'); 

     $check->save(); 
     return "updated".$check; 
    } 
} 

この(return "updated".$check;)コンソールのコードリターン:

updated{"ID":13,"UserName":"sadek","Password":"456"} 

enter image description here

前ユーザー名はサドました。編集後、私はsave()メソッドの後にsadekで編集した名前を取得しました。しかし私がそれをリフレッシュすると、サードが表示されます

テーブルを更新するにはどうしたらいいですか?

+0

をコールする必要はありません、あなたのモデルが正しい入力可能なフィールドがありますか? – Birdy

+0

'<?php 名前空間App。 Illuminate \ Database \ Eloquent \ Modelを使用します。 クラスユーザーはモデル 延び{// } ' – Fawel

+0

入力可能なフィールドは、モデルであり、アレイ...例として示す:保護された$の充填可能な= [「USER_ID」、「名」、「性別」、「電話'、 'Eメール']; – Birdy

答えて

0

あなたはjson formateでデータを送信しています。あなたのクエリ文字列は同じではありません。

"UserName" != username 

Password != password 

を確認してください。

0

雄弁あなたは上記の持っているすべてのロジックを処理するための方法を提供し、それがドキュメントからupdateOrCreate()

と呼ばれている:

また、あなたは既存のモデルを更新するような状況に遭遇する可能性存在しない場合は新しいモデルを作成します。 Laravelはこれを1つのステップで行う方法をupdateOrCreateで提供しています。 firstOrCreate方法と同様に、updateOrCreateモデルを持続するので、save()

$flight = App\Flight::updateOrCreate(
    ['departure' => 'Oakland', 'destination' => 'San Diego'], 
    ['price' => 99] 
); 
関連する問題