Laravelの登録・更新処理で「$fillable」を検証してみた

Laravelの登録、更新で「$fillable」を使用するとシンプルなコードで処理ができるらしい。。との事で検証してみた。

PHPでの標準的は登録処理はこのようにフォームの値をrequestから各項目から1つずつデータを受け取って処理をしている。

スクリーンショット 2020-01-04 15.03.18

これを「$fillable」または「$guarded」を使うとわざわざ1つずつフォームの値を受け取らなくても登録・更新処理ができるらしい。

それでは、「$fillable」で試してみよう!

まずは、Modelを編集する。

Modelに「protected $fillable = [];」の配列を用意して処理したいカラムを指定する。Laravelでは「id」timestampsのカラム「create_at」「update_id」が標準で作成する仕組みなので、それ以外のフォームで登録・更新するカラムを設定する。

スクリーンショット 2020-01-04 15.27.06

Controllerの登録メソッドを下記のように書き換える。この2行のみ

スクリーンショット 2020-01-04 15.56.37

スクリーンショット 2020-01-04 16.05.04

1行目が「$fillable」を使用しないで登録したパターンで2行目が「$fillable」を使用した登録結果です。どちらとも上手くいきました。

この方法は、更新処理(update)でも同じように使えます。

以上、ご参考になると幸いです。

Makoto

この記事が気に入ったらサポートをしてみませんか?