Подтвердить что ты не робот

Как настроить массовое присвоение обновления в Laravel 4?

Это внутреннее приложение, безопасность массового присвоения в этом случае не является проблемой.

Я имею дело с очень большими (многочисленными) полями формы, поэтому массовое назначение пользовательских прав было бы замечательным. Массовое назначение, похоже, отлично работает с "create()", но не с поиском и сохранением.

Это то, что у меня есть:

$post_data = Input::all();
$formobj = HugeForm::find($id);
$formobj->save($post_data);

Как мне это сделать? Я бы предпочел не указывать много десятков входов формы.

4b9b3361

Ответ 1

Вы можете использовать fill(array $attributes)...

$post_data = Input::all();
$formobj = HugeForm::find($id);
$formobj->fill($post_data);
$formobj->save();

Ответ 2

В случае массового обновления его можно было бы записать еще короче.

$post_data = Input::all();
HugeForm::find($id)->update($post_data);

Ответ 3

Чтобы разрешить массовое присвоение в Laravel, вам нужно добавить:

protected $guarded = array();

В свою модель. В основном это говорит laravel не защищать любые поля, вы также можете использовать:

protected $fillable = array();

И затем установите поля, которые вы хотите заполнить.

Надеюсь, что это поможет