У моделі 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.