私はEloquentのドキュメントを読んでいて、投稿リクエストの一括割り当てのトピックに行き着きました。
ですから、今、私の心には、一点に向けられた 2 つの質問があります。
1- 一括割り当ての利点は何ですか?
2- 一括割り当てを使用してはいけない場合は?
私はEloquentのドキュメントを読んでいて、投稿リクエストの一括割り当てのトピックに行き着きました。
ですから、今、私の心には、一点に向けられた 2 つの質問があります。
1- 一括割り当ての利点は何ですか?
2- 一括割り当てを使用してはいけない場合は?
一括代入の利点は、ほとんどの場合、コードの記述が少なくなることです。実行時間はそれほど速くありません...
また、通常の古い挿入、更新よりも確実に安全性が低くなります。ユーザー入力をやみくもにモデルに渡すため。
私はそれを使用することを避けており、実際に実際に使用する適切な時期を実際に見つけたことはありません.
個人的には、パスワードやIDなどの機密フィールドをチェックなしで入力できるように保護するのに役立つだけでなく、機密でないフィールドに値をすばやく割り当てるのにも役立つため、一括割り当ては非常に便利であることがわかりました.
一括割り当てが機密フィールドを保護する方法:
で一括割り当てするように指定されていないフィールドに値を入力/割り当てませんprotected $fillable property
。
たとえば、以下のようUser model with fields id, first_name, last_name, email, password.
に値を割り当てることができます。first_name, last_name, email
$user = new User;
$user->first_name = Input::get('first_name');
$user->last_name = Input::get('last_name');
$user->email = Input::get('email');
$user->save();
上記の方法は受け入れられますが、より多くのフィールドがある場合はどうなりますか? これは、大量割り当てが助けになるところです。次の方法で行くことができます:
$user = new User;
$user->fill(Input::all());
$user->save();
ただし、一括割り当てを使用する前に、以下に示すように、一括割り当てするフィールドがモデルの保護された $fillable プロパティに保存されていることを確認する必要があります。そうしないと、一括割り当て例外が発生します。
protected $fillable = ['first_name', 'last_name', 'email'];
注:プロパティのようpassword
に機密性の高いフィールドを含めるのは危険protected $fillable
です。以下に示すように、機密フィールドをprotected $guarded
プロパティに追加することをお勧めします。
protected $guarded = ['id', 'password'];