В модели 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;
}
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.