Posted at

(Laravel) fillを使ってモデルの複数カラムを更新する

More than 1 year has passed since last update.

公式マニュアルではモデルを更新するとき、プロパティを指定して値を入れる方法が紹介されている。

https://readouble.com/laravel/5.5/ja/eloquent.html

$flight = App\Flight::find(1);

$flight->name = 'New Flight Name';

$flight->save();

しかし、これは更新したいプロパティが複数あるときは、つらつらと並べないといけない。

そんなときはfillを使うと便利。

$flight->fill(['name' => 'New Flight Name'])->save();

Arrayで指定できるので以下のようにすることもできる。

public function update(Request $request)

{
$flight = App\Flight::find($request->id);
$flight->fill($request->all())->save();
}

こうすればいちいちプロパティを指定せずに済むので便利ですね。