Ну, может быть, уже слишком поздно, чтобы ответить, но я просто хотел это выяснить, потому что это уже вызвало достаточно путаницы (по крайней мере, для меня) ...
Если вы позвоните parent::beforeSave()
в beforeSave () вашей модели и после этого проверьте на isNewRecord
, она всегда будет иметь значение false
, потому что модель сохранена.
Ваша модель построена поверх класса фреймворка, поэтому, когдаВы переопределяете метод, сначала выполняете свою задачу, а затем вызываете родительский метод.Итак:
protected function beforeSave() {
if ($this->isNewRecord)
//do something
else
//do something else
/* some more code*/
parent::beforeSave();
return true;
}
Вы также можете вызвать parent beforeSave () следующим образом:
return parent::beforeSave();
или
return true && parent::beforeSave();
Надеюсь, что это поможет другим, кто найдет этот вопрос черезGoogle.