Для организации вывода данных таблицы выл написан код контроллера
controllers/AnimalsController.php
с действием "actionList", представление views/animals/list.php
и модель models/Animals.php
.Все было запрограммировано в ручном режиме. Но в Yii есть модуль Gii, который позволяет генерировать подобный код автоматически, что облегчает жизнь разработчикам. В этой статье попробуем сделать все действия из предыдущей, только с использованием Gii.
Активация Gii
Сначала необходимо убедиться, что модуль Gii активен. Для этого он должен быть перечислен в файле конфигурацииconfig/web.php
так:
$config = [ ... ];
if (YII_ENV_DEV) { // если приложение в режиме разработки
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'allowedIPs' => ['ваш_ip_адрес'],
];
}
Вставьте вместо "ваш_ip_адрес" свой внешний ip (его можно узнать через поисковик). Это нужно, потому что Gii позволяет получить прямой доступ к базе. Поэтому если посторонний получит доступ к системе управления Gii, то сможет навредить проекту.Если открыть файл
/index.php
в корневой веб папке, то там будет строка, указывающая на то, что приложение находится в разработке:
defined('YII_ENV') or define('YII_ENV', 'dev');
Если это строка присутствует, то остаётся только перейти на страницу управления модулем Gii. Находится эта страница по адресу /index.php?r=gii
.
Создание модели Gii
На странице управления Gii кликните на кнопку "Start" в разделе создания модели. Затем введите название и кликните "Preview" внизу формы: Система проверит существует ли данная модель, и нет ли других проблем. В нашем случае модель "Animals" уже создана, поэтому необходимо поставить флаг перезаписи в списке под кнопкой "Preview". А затем нажать на нопку "Generate", чтобы перезаписать модель.Создание представления и контроллера
Теперь можно перейти на второй пункт "CRUD Generator". Эта аббревиатура расшифровывается как "Create", "Read", "Update" и "Delete". С помощью этой формы можно сгенерировать контроллер и представления, в функции которых будут входить элементы управления, чтобы можно было читать, изменять, удалять и добавлять новые элементы в таблицу из публичного раздела сайта. В этой форме необходимо заполнить первые три поля такими данными для нашего примера:- Model Class: app\models\Animals
- Search Model Class: app\models\AnimalsSearch
- Controller Class: app\controllers\AnimalsController
Создание представления и контроллера
Остаётся только протестировать результат на странице/index.php?r=animals/index
:
Как можно заметить, тут есть и функции редактирования, поиска и сортировки элементов таблицы. Если вас не устраивает визуальное представление или другие функции, то их код всегда можно отредактировать вручную, через файлы.