Yii2 gii как запустить
Перейти к содержимому

Yii2 gii как запустить

  • автор:

Генератор программного кода Gii в Yii

В прошлой статье «Взаимодействие с базой данных в Yii» был разобран пример вывода списка из базы данных. Для этого в базе была создана таблица «animals» с полями «name» и «food». Таблица была заполнена примерами данных (названиями животных и их любимой едой).

Для организации вывода данных таблицы выл написан код контроллера 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 в фреймворке Yii

Если это строка присутствует, то остаётся только перейти на страницу управления модулем Gii. Находится эта страница по адресу /index.php?r=gii .

Создание модели Gii

Страница создение модли модулем Gii в фреймворке Yii

На странице управления Gii кликните на кнопку «Start» в разделе создания модели. Затем введите название и кликните «Preview» внизу формы: Система проверит существует ли данная модель, и нет ли других проблем. В нашем случае модель «Animals» уже создана, поэтому необходимо поставить флаг перезаписи в списке под кнопкой «Preview». А затем нажать на нопку «Generate», чтобы перезаписать модель.

Создание представления и контроллера

CRUD Generator модуля Gii в фреймворке Yii

Теперь можно перейти на второй пункт «CRUD Generator». Эта аббревиатура расшифровывается как «Create», «Read», «Update» и «Delete». С помощью этой формы можно сгенерировать контроллер и представления, в функции которых будут входить элементы управления, чтобы можно было читать, изменять, удалять и добавлять новые элементы в таблицу из публичного раздела сайта. В этой форме необходимо заполнить первые три поля такими данными для нашего примера:

  • Model Class: app\models\Animals
  • Search Model Class: app\models\AnimalsSearch
  • Controller Class: app\controllers\AnimalsController

Затем необходимо нажать на кнопу «Preview», отметить все действия в появившемся списке под кнопкой для выполнения и кликнуть «Generate».

Создание представления и контроллера

Страница, созданная с помощью модуля Gii в фреймворке Yii

Остаётся только протестировать результат на странице /index.php?r=animals/index : Как можно заметить, тут есть и функции редактирования, поиска и сортировки элементов таблицы. Если вас не устраивает визуальное представление или другие функции, то их код всегда можно отредактировать вручную, через файлы.

Как подключить Gii в Yii2 advanced

Я установить его через Composer, прописал настройки в frontend/config/main.php, но по адресу /index.php?r=gii ничего не показывается, то есть показывается стандартная страница. Что я сделал не так? frontend/config/main.php

'bootstrap' => ['gii'], 'modules' => [ 'gii' => 'yii\gii\Module', // . ], 

Отслеживать
задан 7 сен 2016 в 12:56
2,563 1 1 золотой знак 20 20 серебряных знаков 47 47 бронзовых знаков

прописал настройки в frontend/config/main.php . какие? добавьте конфиг в вопрос . и есть ли с common конфиг main-local ?

7 сен 2016 в 13:33
Добавил конфиг в вопрос. в папке common есть конфиг main-local
7 сен 2016 в 13:41

Это какой-то маааааленький конфиг. вы его весь выложите. А в common/main-local есть строки ‘urlManager’ => [ ‘enablePrettyUrl’ => true, ], ? . а во frontend и backend есть main-local? там же уже gii должен быть прописан

7 сен 2016 в 13:43

в common/main-local такого нету, такое есть в frontend/config/main . и да, в frontend/config/main-local gii уже прописан

7 сен 2016 в 13:50

В этом наверное и проблема. это позволяет писать красивые урлы. Т.е. можно писать mysite.ru/gii . правда при наличии опции ‘request’=>[ ‘baseUrl’=>», ], . А если поставить ‘enablePrettyUrl’ => false, то можно писать index.php?r=gii и раз в main-local подключен gii, то в main писать ‘modules’ => [ ‘gii’ => ‘yii\gii\Module’, // . ], вроде и не обязательно

Как запустить gii на yii2 advanced именно во фронтеде?

Добрый вечер дорогие друзья. Мне нужна ваша помощь. Смотрел вначале в интернете разные варианты. ничего не помогает. Как запустить gii на yii2 advanced именно во фронтеде? Ну или хотя бы в бекенде. У меня все время выдает ошибку 404. На версии basic я мог запускать данный генератор. На расширенной версии геморой и подводные камни.

  • Вопрос задан более трёх лет назад
  • 365 просмотров

14 комментариев

Простой 14 комментариев

slo_nik

Дмитрий @slo_nik Куратор тега Yii
Добрый вечер.
А какой адрес Вы указываете?
JohnSky7 @JohnSky7 Автор вопроса

slo_nik, site2/frontend/web/gii
site2 это папка, где у меня находится сайт.
так же в папке fronted->config->main-local->php я указал свой айпи адрес в ‘allowedIPs’ => [‘мой айпи’, ‘::1’],
‘::1’ я не знаю зачем нужен. у человека в гайде был. но нет разницы с ним или без него. не могу запустить

JohnSky7 @JohnSky7 Автор вопроса
slo_nik, К сожалению та же самая ошибка 404

slo_nik

Дмитрий @slo_nik Куратор тега Yii

JohnSky7, в значениях параметра «allowedIPs» вы указывает для каких ip адресов показывать debug панель, а для каких нет.

JohnSky7 @JohnSky7 Автор вопроса

slo_nik,
$config = [
‘components’ => [
‘request’ => [
// . insert a secret key in the following (if it is empty) — this is required by cookie validation
‘cookieValidationKey’ => ‘TwzWwZNxRu1kETFdHHtQbUKUuAHZtNik’,
],
],
];

if (!YII_ENV_TEST) // configuration adjustments for ‘dev’ environment
$config[‘bootstrap’][] = ‘debug’;
$config[‘modules’][‘debug’] = [
‘class’ => ‘yii\debug\Module’,
‘allowedIPs’ => [‘37.147.190.194’, ‘::1’],
];

$config[‘bootstrap’][] = ‘gii’;
$config[‘modules’][‘gii’] = [
‘class’ => ‘yii\gii\Module’,
‘allowedIPs’ => [‘37.147.190.194’, ‘::1’],

Как включить Gii и Debugger на сайте Yii 2.x?

По умолчанию в режиме разработчика в файле config/web.php есть исходный код, который активирует и деактивирует Gii и Debugger.

// подключаем пространство имен if (YII_ENV_DEV) < // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' =>'yii\debug\Module', ]; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', ]; >

Особенность заключается в том, что данный код работает только на локальном сервере, т.е с адреса 127.0.0.1. При переносе сайта на удаленный сервер и отладчик, и генератор кода перестает работать. Для решение этой проблемы необходимо выяснить ip адрес сервера и добавить адрес в список разрешенных ip адресов.

if (YII_ENV_DEV) < $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' =>'yii\debug\Module', 'allowedIPs' => ['62.162.250.208'], ]; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', 'allowedIPs' => ['62.162.250.208'] ]; >

Где 62.162.250.208 — адрес вашего сервера

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *