Доопрацювання моделі Comment ============================ У моделі `Comment` нам необхідно виправити методи `rules()` та `attributeLabels()`. Метод `attributeLabels()` повертає масив заголовків для зазначених полів. Метод `relations()` виправляти не будемо, так як код, що згенерував `Gii`, нам підходить. Зміна методу `rules()` ---------------------- Почнемо із уточнення правил валідації, згенерованих за допомогою `Gii`. Для коментарів будемо використовувати наступні правила: ~~~ [php] 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()`. Задамо свої підписи атрибутам. Цей метод повертає масив пар імʼя атрибута-підпис. ~~~ [php] public function attributeLabels() { return array( 'id' => 'Номер', 'content' => 'Коментар', 'status' => 'Статус', 'create_time' => 'Час створення', 'author' => 'Імʼя автора', 'email' => 'Email', 'url' => 'Website', 'post_id' => 'Запис', ); } ~~~ > Tip|Підказка: Якщо підпис атрибуту не заданий у `attributeLabels()`, для його генерації використовується спеціальний алгоритм. Наприклад, для атрибутів `create_time` та `createTime` підпис буде виглядати як `Create Time`. Зміна процесу збереження ------------------------ Для того, щоб записувати час створення коментаря, перевизначимо метод `beforeSave()` класу `Comment` так само, як це зроблено для моделі `Post`: ~~~ [php] protected function beforeSave() { if(parent::beforeSave()) { if($this->isNewRecord) $this->create_time=time(); return true; } else return false; } ~~~