()とupdate()メソッドの違いは何ですか?laravelに更新を保存します
更新クエリの場合はsave()メソッドを使用しましたが、ほとんどの場合更新として機能し、挿入クエリ関数として機能することはほとんどありません。私はそれらの違いを正確に教えてください。
()とupdate()メソッドの違いは何ですか?laravelに更新を保存します
更新クエリの場合はsave()メソッドを使用しましたが、ほとんどの場合更新として機能し、挿入クエリ関数として機能することはほとんどありません。私はそれらの違いを正確に教えてください。
これらのメソッドを使用すると、データをデータベースに保存できます。お使いのモデルがすでにデータベースに存在する場合も
$flight = new Flight;
$flight->name = $request->name;
$flight->save(); // it will INSERT a new record
それはUPDATE
のように振る舞うことができ、:あなたが現在お使いのデータベーステーブルに提示されていない新しいモデルを作成INSERT
として
save()
方法perfroms 。だから、実際に実行し、それを、モデルを取得し、いくつかのプロパティを変更し、その後save()
できデシベルのUDPATE
:だからあなたは
App\Flight::where('active', 1)
->where('destination', 'San Diego')
->update(['delayed' => 1]); // this will also update the record
:
$flight = App\Flight::find(1);
$flight->name = 'New Flight Name';
$flight->save(); //this will UPDATE the record with id=1
update()
方法は、あなたがより便利な方法であなたのモデルを更新することができます検索されたモデルを任意の変数に割り当てるべきではありません。更新されたプロパティは引数として渡されます。
例と詳細はLaravel's docsです。
@ginopaneが差異について語ったことは何も言われていません。query builder result
で更新メソッドを使用すると、laravelは$fillable
または$guard
のモデルの配列を無視します。あなたが更新するための引数としてInput::all()
を使用したい場合、これは特に重要です:あなたは、データベース内App\Flight::where('active', 1)->update(Input::all());
すべてのものを使用している場合ので、この場合には、あなたが$fillable
に入れた場合でも
Post::where('id', $id)->update(Input::all());
を更新されます。だからEloquent instance
にはsave
とupdate
のメソッドを使用し、クエリービルダー1では使用しないでください。
// User model
protected $fillable = ['email', 'name'];
// controller
public function update($id)
{
$user = User::findOrFail($id);
// validate the input here, use Request to do the job or whatever you like
$user->update(Input::all());
return view('some_view')->with('notice', 'user updated');
}
を、関係なく、ここに渡されるFORM、唯一name
で何とemail
:次のコードは、ユーザーがあなたのdatabseテーブルに挿入したり、更新したくないフィールドを提出した場合でも罰金になります更新されます。
この完全な@ginopaneの回答