Доработка модели 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; }