@Camaro67
Помог? - "Отметить решением"

Почему защита от массового назначения работает не везде?

Здравствуйте! Не могу понять по какой логике строится защита от массовых назначений в Laravel, в документации вроде ничего об этом не сказано или я что-то не так понимаю.

Вот, например, три примера:

Пример 1:
Order::create([
    'field' => 10,
    'field2' => 15,
]);


Пример 2:
Order::whereKey([1, 2])->update([
    'field' => 10,
    'field2' => 15,
]);


Пример 3:
Order::find(1)->update([
    'field' => 10,
    'field2' => 15,
]);


В итоге пример 1 и 3 не срабатывают (как и ожидалось т.к. поля не разрешены для массовых назначений), а вот второй прекрасно отрабатывает, почему? И при каких вариантах еще она не будет работать при использовании моделей?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
v_decadence
@v_decadence
Потому что второй вариант вызывает update на всей выборке, а не на конкретной модели. В этом случае не сработает защита, события, мутаторы и прочие плюшки Eloquent
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы