Доопрацювання моделі 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' => 'Номер', '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; }