一括割り当てとは、モデルの作成に配列を送信するときです。基本的には、次のように、モデルに一連のフィールドを1つずつではなく1回で設定します。
$user = new User(request()->all());
(これは、モデルの各値を個別に明示的に設定するのではありません。)
fillable
これを使用して、実際に更新を許可するフィールドを保護できます。
次のようにして、すべてのフィールドを一括割り当てできないようにすることもできます。
protected $guarded = ['*'];
userテーブルにuser_type
、user / adminの値を持つことができるフィールドがあるとしましょう
もちろん、ユーザーがこの値を更新できないようにする必要があります。理論的には、上記のコードを使用すると、誰かがフォームに新しいフィールドを挿入user_type
し、他のフォームデータとともに「admin」を送信し、簡単に自分のアカウントを管理者アカウントに切り替えることができます...悪い知らせ。
追加することにより:
$fillable = ['name', 'password', 'email'];
これらの値のみを使用して更新できることを確認しています mass assignment
user_type
値を更新できるようにするには、次のようにモデルに明示的に設定して保存する必要があります。
$user->user_type = 'admin';
$user->save();