У моделі 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' => 'Номер',
'content' => 'Коментар',
'status' => 'Статус',
'create_time' => 'Час створення',
'author' => 'Імʼя автора',
'email' => 'Email',
'url' => 'Website',
'post_id' => 'Запис',
);
}Підказка: Якщо підпис атрибуту не заданий у
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.