правила валідації були налаштовані, в модель були додані статичні методи для вибірки списку товарів. Кожній такий метод використовує провайдер даних і виглядає приблизно так:
public static function searchByCategory ($ category, $ pageSize)
{
// створення умови вибірки
$ criteria = new CDbCriteria ();
$ criteria-> select = 'Id, title'. ucfirst (Yii :: app () -> language). ' as title, cost ';
$ criteria-> addInCondition ('idCategory', Category :: getAllChildren ($ category));
// створення провайдера даннихnew CActiveDataProvider (__CLASS__, array (
// умова вибірки
'criteria' => $ criteria,
// налаштування посторінкового виведення
'pagination' => array (
'pageSize' => $ pageSize
),
// підтримка сортування
'sort' => array (
'defaultOrder' => 'title'. ucfirst (Yii :: app () -> language),
'attributes' => array (
'title'. ucfirst (Yii :: app () -> language),
'time',
'cost'
)
)
));
}
Як видно з наведеного вище коду провайдер даних є екземпляром класу CActiveDataProvider (а так само нащадком CDataProvider) і дуже гнучкий у налаштуванні.
2.6.4 Налаштування уявлень адміністратора
Для виведення посилань для адміністраторських дій необхідно перевірка чи є користувач адміністратором. Так як адміністратор всього один в системі і розділення прав не використовується, то достатньо лише перевірки на авторизовані користувача: if (Yii :: app () -> user-> isGuest). p align="justify"> Після того як були виведені всі посилання, були доопрацьовані подання форм з урахуванням специфіки моделей і правил валідації. Для цього використовувалися статичні методи CHtml, відповідальні за виведення полів введення форми. Найбільш часто використовувані методи CHtml для форм:
1. CHtml :: activeLabelEx (<модель>, <ім'я св-ва>) - виводить заголовок поля введення, де заголовок береться з методу attributeLabels моделі, а так само позначає його червоною *, якщо воно обов'язкове (має валідатор required).
2. CHtml :: activeTextField (<модель>, <ім'я св-ва>) - виводить текстове поле введення.
. CHtml :: activeTextArea (<модель>, <ім'я св-ва>) - виводить text...