Задать вопрос

Почему не срабатывает beforeSafe в модели ActiveRecord (Yii Framework)?

Скорее всего причина банальная, но я не знаю ответа.

Сам beforeSafe
protected function beforeSafe()
    {
        if (preg_match('/(\d{2})\.(\d{2})\.(\d{4})/', $this->start))
        {
            $this->start = date('Y-m-d H:i:s', strtotime($this->start));
        }
        if (preg_match('/(\d{2})\.(\d{2})\.(\d{4})/', $this->finish))
        {
            $this->finish = date('Y-m-d H:i:s', strtotime($this->finish));
        }
        return parent::beforeSafe();
    }


Откуда берется модель
$order_model = Order::model()->getById($id);

В самой модели
public function getById($id)
    {
        $user = Order::model()->find('id = :id', array(':id' => $id));
        return $user;
    }


Когда делаю
$order_model->save();

Не срабатывает beforeSafe. Проверял следующим способом. Делал просто внутри него $this->title = 'TEST'; Но title поле не менялось. Следовательно о смене значений полей $this->start и $this->finish не может быть и речи.
  • Вопрос задан
  • 3174 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
bobahvas
@bobahvas
Senior Full Stack Developer
1) вместо beforeSafe - beforeSave
2) Зачем метод getById когда есть findByAttributes(array('id' => $id)) и findByPk($id)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Скорее всего причина банальная, но я не знаю ответа.

Тут ты прав :)
@bobahvas все правильно сказал
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы