Доработка модели Comment
В модели Comment нам необходимо поправить методы rules() и attributeLabels().
Метод attributeLabels() возвращает массив заголовков для указанных полей.
Метод relations() исправлять не будем так как код, сгенерированный Gii нам
подходит.
Изменение метода rules()
Начнём с уточнения правил валидации, сгенерированных при помощи Gii.
Для комментариев будем использовать следующие правила:
public function rules() { return array( array('content, author, email', 'required'), array('author, email, url', 'length', 'max'=>128), array('email','email'), array('url','url'), ); }
Здесь мы указываем, что атрибуты author, email и content обязательны.
Длина author, email и url не может превышать 128 символов. Атрибут email
должен содержать корректный email-адрес. url должен содержать корректный URL.
Изменение метода attributeLabels()
Изменим метод attributeLabels(). Зададим свои подписи атрибутам. Этот метод
возвращает массив пар имя атрибута-подпись.
public function attributeLabels() { return array( 'id' => 'Id', 'content' => 'Comment', 'status' => 'Status', 'create_time' => 'Create Time', 'author' => 'Name', 'email' => 'Email', 'url' => 'Website', 'post_id' => 'Post', ); }
Подсказка: Если подпись атрибута не задана в
attributeLabels(), для её генерации используется специальный алгоритм. К примеру, для атрибутовcreate_timeиcreateTimeподпись будет выглядеть какCreate Time.
Изменение процесса сохранения
Для того, чтобы записывать время создания комментария, переопределим
метод beforeSave() класса Comment также, как это сделано для модели Post:
protected function beforeSave() { if(parent::beforeSave()) { if($this->isNewRecord) $this->create_time=time(); return true; } else return false; }