Как обновить запись в моделе без вызова before save?

Как в Yii2 сделать так?

$data = Cars::find()->where(['id_car' => 100])->one();
$data >car_price = 150;
$data >save(false);

Но так, чтобы не было вызова before save в модели.
  • Вопрос задан
  • 315 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
$data >save(false);
это сохранение без валидации, before save все равно сработает.
Если надо обойти стороной before save и остальные events, тогда стоит сделать так:
Cars::updateAll(['car_price' => 150], 'id_car = 100');

www.yiiframework.com/doc-2.0/yii-db-activerecord.h...
Ответ написан
Комментировать
usdglander
@usdglander
Yipee-ki-yay
Я не совсем понял: у вас уже есть переопределённый beforeSave в модели с какой то логикой и Вам его надо просто отключить в одном месте?

upd: Если да, то добавьте в модели флаг useBeforeSave и в коде метода beforeSave делайте проверку if (!$this->useBeforeSave) { return true; } вначале.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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