Ответ 1
Вы можете использовать fill(array $attributes)
...
$post_data = Input::all();
$formobj = HugeForm::find($id);
$formobj->fill($post_data);
$formobj->save();
Это внутреннее приложение, безопасность массового присвоения в этом случае не является проблемой.
Я имею дело с очень большими (многочисленными) полями формы, поэтому массовое назначение пользовательских прав было бы замечательным. Массовое назначение, похоже, отлично работает с "create()", но не с поиском и сохранением.
Это то, что у меня есть:
$post_data = Input::all();
$formobj = HugeForm::find($id);
$formobj->save($post_data);
Как мне это сделать? Я бы предпочел не указывать много десятков входов формы.
Вы можете использовать fill(array $attributes)
...
$post_data = Input::all();
$formobj = HugeForm::find($id);
$formobj->fill($post_data);
$formobj->save();
В случае массового обновления его можно было бы записать еще короче.
$post_data = Input::all();
HugeForm::find($id)->update($post_data);
Чтобы разрешить массовое присвоение в Laravel, вам нужно добавить:
protected $guarded = array();
В свою модель. В основном это говорит laravel не защищать любые поля, вы также можете использовать:
protected $fillable = array();
И затем установите поля, которые вы хотите заполнить.
Надеюсь, что это поможет