【Laravel8.x Eloquent】fill()の使い方を知って、save()で各requestを入力する手間を省く!

こんにちは、コアラマットレス買ってみてめっちゃ楽しみにしている今日この頃。

今回はcontroller内でのsave処理についての説明です。

コードを書く際には、読みやすい、変更に強い、間違えにくいようにする等必要なことがありますよね~

そこで今回はリクエストをDBに保存する際に利用するsave()メソッドを使った際のコツを紹介していきましょう!!!

参考ブログ↓
LaravelのORMで初心者から職人へ

今回解決したい課題

今回はsave()メソッドを使う中で以下のようなコードになっていました。

$user->name    = $request->name;
$user->email   = $request->email;
$user->comment = $request->comment;

$user->save();Code language: PHP (php)

このようなコードにしていた際に、保存する項目が増えた際などにちょっと管理が面倒だったりします。

読みやすいですけどね。

ということで、これをできるだけ短いコードにまとめて管理できるようにしてみます。

fill()メソッドを使って解決する。

今回はfill()を使って解決していこうと思います。

更新したいプロパティがたくさんある場合にfillを使うと便利なんですよねー

ということで使ってみましょう。

修正前コード

$user->name    = $request->name;
$user->email   = $request->email;
$user->comment = $request->comment;

$user->save();Code language: PHP (php)

修正後コード

$user->fill($request->all())->save();Code language: PHP (php)

一行で修正できちゃった!ということですごい便利だわ

メリット

fill()を使うことでカラムを追加した際でも修正のコードが必要ない!!!!!!!!

fill()を使うときには一度Modelを見に行って$fillableで指定されている項目かどうかをチェックして、$fillableで指定されているものだけがsave()されるようになっています。

注意点

Modelの$fillable指定を見に行くので、カラムが追加された時などは$fillableの指定を忘れないようにしましょう!ここを忘れると忘れた項目だけsave()されません!

まとめ

  • fill()を使うと変更の際にコードの修正がほぼ必要なし。($fillableの追加がいる)

fill()使うと結構便利ですね~

うまいこと書いてるつもりでも方法はたくさんあるからbetterをどんどん探さないと…

1 COMMENT

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA