beforeSave

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Yii Gagayiin
Сообщения: 18
Зарегистрирован: 2016.10.02, 02:09

beforeSave

Сообщение Yii Gagayiin »

Здравствуйте,

У меня возникла необходимость при сохранении модели делать кое-какие действия.
Поэтому я создал в модели метод - public function beforeSave($insert).... в который поместил необходимый код...
Если конкретно, то это отправка СМС через сервис SMS.ru
Но получилось, что и при работе метода update() данной модели сообщение также отправляется...
А мне этого совсем не нужно.
Подскажите, пожалуйста, как грамотно решить этот вопрос?

Спасибо!
caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

Re: beforeSave

Сообщение caHek2x »

Yii Gagayiin писал(а): 2017.04.11, 19:13 public function beforeSave($insert)
там true/false при добавлении true ... при обновлении false
Аватара пользователя
Yii Gagayiin
Сообщения: 18
Зарегистрирован: 2016.10.02, 02:09

Re: beforeSave

Сообщение Yii Gagayiin »

caHek2x писал(а): 2017.04.11, 19:15
Yii Gagayiin писал(а): 2017.04.11, 19:13 public function beforeSave($insert)
там true/false при добавлении true ... при обновлении false
true и false у метода save() при созранении модели?
$model->save(true)....
Я правильно понял?
caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

Re: beforeSave

Сообщение caHek2x »

нет в save true/false отвечает за валидацию
то есть если вы уже сами отвалидировали то чтоб при сохранении еще раз не повторялась валидации можете передать false

а в beforeSave($insert)
зависит от того новая модель или нет ... то есть если это новая модель (new Model) то в $insert прийдет true и в базу будет запрос INSERT INTO .....
а если это не новая модель (Model::find()->one()) то придет false? а в базу это запрос UPDATE
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: beforeSave

Сообщение urichalex »

Лучше это делать в afterSave. Ато модель не сохранится, а смс уже отправлено
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: beforeSave

Сообщение ElisDN »

Код: Выделить всё

if ($insert) {
    ...
}
Ответить