Не работает gii yii2

Как включить gii в yii2 advanced

Содержание:

Сразу хочу предупредить: генерация кода будет доступна только из админки (т.к. досутп к ней из фронтенда не совсем безопасное занятие).

Идем в backend\config\ и открываем main-local.php , там ищем такой код:

Если кода нет, копируем и вставляем перед return $config; . Если он есть, но закоментирован — раскоментируй.

Разберемся что тут написано. Сначала мы спрашиваем у константы YII_ENV_TEST true она или не true. Чтобы понимать откуда растут ноги, откройте файлик backend\web\index.php . Найдите строку

Значение константы YII_ENV может принимать другие значения:

  • prod: окружение production. YII_ENV_PROD установлена в true.
  • dev: окружение development. YII_ENV_DEV установлена в true.
  • test: окружение testing. YII_ENV_TEST установлена в true.

Соответственно, если настройка конфигурации инициализирована для среды dev, тогда мы попадем в наше условие if() .

Всё, Gii включили =) можно проверять. Открываем http://что-то-там/admin/index.php?r=gii (или http://что-то-там/admin/gii если увас настроены ЧПУ).

Дальше мы можем столкнуться с ошибкой Forbidden (#403). Исправляем

Исправляем ошибку Forbidden (#403) при включении Gii в Yii2 advanced

Если столкнулся с ошибкой 403, значит все модули подключены и генератор кода «виден». Но у нас пока нет к нему доступа. Чтобы исправить эту ошибку открываем файл backend\config\main-local.php и в массив $config[‘modules’][‘gii’] дописываем элемент ‘allowedIPs’ => [‘*’], . После этих манипуляций код будет выглядить следующим образом:

Элемент массива allowedIPs указывает на диапазон IP адресов, которым можно работать с Gii. Значение ‘*’ указывает на то, что все IP’шники могут работать с Gii. Это не совсем безопасно (хотя мы отсеяли кучу народа, у которго нет досутпа в админку). Значением allowedIPs лучше указывать свой IP (твой IP можешь тут).

Исправляем ошибку Not Found (#404) при включении Gii в Yii2 advanced

Ошибка 404 может возникнуть по двум причинам:

1. Если в файле backend\web\index.php константе YII_ENV присваивается значение test .

В этом случае меняем значение на dev или prod (первый предпочтительнее если вы разрабатываете сайт).

2. Если в файле backend\config\main-local.php нет (или он закоментирован) кода

В этом случае просто добавляем (раскомментируем) код.

Источник

Yii 2.0 включить Gii

Не с первого раза мне удалось получить доступ к генератору кода Gii.

Дальше расскажу почему и как включить в конфиге эту возможность.

Начиная разбираться в фреймворке Yii 2, имея уже некоторый опыт работы с фреймворком первой версии, я сразу в конфиге web.php в секции urlManager переключил формат ссылок на ЧПУ и скрыл показ index.php:

Читайте также:  Ноутбук не работает клавиша пробел

‘enablePrettyUrl’ => true,
‘showScriptName’=>false

‘urlManager’ => [
‘class’ => ‘yii\web\UrlManager’,
‘enablePrettyUrl’ => true, // на время использования Gii переключить на false
‘showScriptName’ => false, // на время использования Gii переключить в true
‘rules’ => [
» => ‘site/index’,
‘ // ‘ => ‘ /’
]
]

это стало одной из причин почему не удается достучаться до Gii. На время использования герератор кода прийдется отключить эти функции. Хотя я уверен что есть и другой способ, то есть, оставить включенными эти функции, но тогда прийдется поднастроить роуты, я не стал этого делать и пошел дальше.

Но такое может быть далеко не у всех пользователей!

Дальше нам нужно добавить в список разрешенных IP адресов наш адрес, с которого мы запрашиваем сайт. На форумах предлагают несколько вариантов как это сделать, но не у ваех это работает. Привожу вариант который у меня заработал. У меня получилось так:

if (YII_ENV_DEV) <
// configuration adjustments for ‘dev’ environment
$config[‘bootstrap’][] = ‘debug’;
$config[‘modules’][‘debug’] = ‘yii\debug\Module’;

$config[‘bootstrap’][] = ‘gii’;
$config[‘modules’][‘gii’] = [
‘class’ => ‘yii\gii\Module’,
‘allowedIPs’ => [‘127.0.0.1’, ‘193.22.33.55’]
];
>

Как показал поиск в Интернет, подобные проблемы возникают у многих кто только начинает работать с фреймворком Yii 2, и устранить их удается не сразу. Надеюсь мой опыт и подсказки вам помогут быстрее разобраться с генератором кода Gii.

Источник

Как включить Gii в Yii2

Дата публикации: 2017-04-24

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В предыдущей статье мы с вами рассмотрели интересный инструмент фреймворка — Gii. В этой статье мы рассмотрим, как включить Gii в Yii2 и, соответственно, как его выключить.

Итак, в предыдущей статье мы с вами познакомились с модулем Gii и даже сгенерировали простейшее CRUD приложение для работы с постами. Согласитесь, использовать генератор кода очень удобно, всего за несколько минут мы получили вполне себе рабочее приложение.

Однако, может так статься, что на каком-либо приложении Yii2 вы захотите воспользоваться модулем Gii, обратитесь к нему по нашему адресу //yii2/gii и вместо приветственной страницы Welcome to Gii увидите что-то такое:

Упс. Как так? Скорее всего, модуль Gii попросту выключен и его нужно включить. Как запустить модуль? Достаточно просто. Для начала идем в конфигурационный файл config\web.php и проверяем там наличие вот таких строк кода:

Фреймворк Yii2. Быстрый старт

Получите курс и узнайте, как с помощью фреймворка Yii2 разрабатывать веб-приложения на примере блога

Источник

Yii 2.0 включить Gii

Не с первого раза мне удалось получить доступ к генератору кода Gii.

Дальше расскажу почему и как включить в конфиге эту возможность.

Начиная разбираться в фреймворке Yii 2, имея уже некоторый опыт работы с фреймворком первой версии, я сразу в конфиге web.php в секции urlManager переключил формат ссылок на ЧПУ и скрыл показ index.php:

Читайте также:  У меня не работает звук служба аудио

‘enablePrettyUrl’ => true,
‘showScriptName’=>false

‘urlManager’ => [
‘class’ => ‘yii\web\UrlManager’,
‘enablePrettyUrl’ => true, // на время использования Gii переключить на false
‘showScriptName’ => false, // на время использования Gii переключить в true
‘rules’ => [
» => ‘site/index’,
‘ // ‘ => ‘ /’
]
]

это стало одной из причин почему не удается достучаться до Gii. На время использования герератор кода прийдется отключить эти функции. Хотя я уверен что есть и другой способ, то есть, оставить включенными эти функции, но тогда прийдется поднастроить роуты, я не стал этого делать и пошел дальше.

Но такое может быть далеко не у всех пользователей!

Дальше нам нужно добавить в список разрешенных IP адресов наш адрес, с которого мы запрашиваем сайт. На форумах предлагают несколько вариантов как это сделать, но не у ваех это работает. Привожу вариант который у меня заработал. У меня получилось так:

if (YII_ENV_DEV) <
// configuration adjustments for ‘dev’ environment
$config[‘bootstrap’][] = ‘debug’;
$config[‘modules’][‘debug’] = ‘yii\debug\Module’;

$config[‘bootstrap’][] = ‘gii’;
$config[‘modules’][‘gii’] = [
‘class’ => ‘yii\gii\Module’,
‘allowedIPs’ => [‘127.0.0.1’, ‘193.22.33.55’]
];
>

Как показал поиск в Интернет, подобные проблемы возникают у многих кто только начинает работать с фреймворком Yii 2, и устранить их удается не сразу. Надеюсь мой опыт и подсказки вам помогут быстрее разобраться с генератором кода Gii.

Источник

Генерация кода при помощи Gii

В этом разделе мы опишем, как использовать Gii для автоматической генерации кода, реализующего некоторые общие функции вебсайта. Для достижения этой цели всё, что вам нужно, это просто ввести необходимую информацию в соответствии с инструкциями, отображаемыми на веб-страницах Gii.

В этом руководстве вы узнаете:

  • Как активировать Gii в приложении;
  • Как использовать Gii для создания Active Record класса;
  • Как использовать Gii для генерации кода, реализующего CRUD для таблицы БД.
  • Как настроить код, генерируемый Gii.

Запускаем Gii #

Gii представлен в Yii как модуль. Вы можете активировать Gii, настроив его в свойстве modules. В зависимости от того, каким образом вы создали приложение, вы можете удостовериться в наличии следующего кода в конфигурационном файле config/web.php ,

Приведенная выше конфигурация показывает, что находясь в режиме разработки, приложение должно включать в себя модуль с именем gii , который реализует класс yii\gii\Module.

Если вы посмотрите входной скрипт web/index.php вашего приложения, вы увидите следующую строку, устанавливающую константу YII_ENV_DEV в значение true .

Благодаря этой строке ваше приложение находится в режиме разработки, и Gii уже активирован в соответствии с описанной выше конфигурацией. Теперь вы можете получить доступ к Gii по следующему адресу:

Note: Если вы пытаетесь получить доступ к Gii не с локального хоста, по умолчанию, в целях обеспечения безопасности, доступ будет запрещён. Вы можете изменить настройки Gii, чтобы добавить разрешённые IP адреса, как указано ниже

Генерация класса Active Record #

Чтобы использовать Gii для генерации класса Active Record, выберите «Генератор модели» (нажав на ссылку на главной странице Gii). И заполните форму следующим образом:

  • Имя таблицы: country
  • Класс модели : Country
Читайте также:  Почему то не работает стартер ваз 2115 причины

Затем нажмите на кнопку «Предварительный просмотр». Вы увидите, что models/Country.php перечислен в результатах создаваемых файлов классов. Вы можете нажать на имя файла класса для просмотра его содержимого.

Если вы уже создали такой же файл и хотите перезаписать его, нажмите кнопку diff рядом с именем файла, чтобы увидеть различия между генерируемым кодом и существующей версией.

Для перезаписи существующего файла установите флажок рядом с «overwrite» и нажмите кнопку «Generate». Для создания нового файла вы можете просто нажать «Generate».

После этого вы увидите страницу подтверждения, указывающую на то, что код был успешно сгенерирован. Если файл существовал до этого, вы также увидите сообщение о том, что он был перезаписан заново сгенерированным кодом.

Создание CRUD кода #

CRUD расшифровывается как Create, Read, Update и Delete, предоставляющий четыре основные функции, выполняемые над данными на большинстве веб-сайтов. Чтобы создать функциональность CRUD используя Gii, выберите «CRUD Генератор» (нажав на ссылку на главной странице Gii). Для нашей таблицы «country» заполните полученную форму следующим образом:

  • Model Class: app\models\Country
  • Search Model Class: app\models\CountrySearch
  • Controller Class: app\controllers\CountryController

Затем нажмите на кнопку «Preview». Вы увидите список файлов, которые будут созданы, как показано ниже.

Если вы уже создали файлы controllers/CountryController.php и views/country/index.php (в разделе о базах данных), установите флажок «overwrite», чтобы заменить их. (Предыдущие версии не поддерживают CRUD полностью)

Испытываем в действии #

Чтобы увидеть как всё это работает, перейдите по следующему URL, используя ваш браузер:

Вы увидите таблицу, показывающую страны из таблицы БД. Вы можете сортировать, а также фильтровать данные, указывая условия фильтрации в заголовках столбцов.

Для каждой отображающейся в таблице страны вы можете просмотреть подробную информацию, обновить или удалить её. Вы также можете нажать на кнопку «Создать страну» в верхней части таблицы для получения формы создания новой страны.

Ниже приведен список файлов, созданных с помощью Gii, в том случае, если вы захотите исследовать реализацию этих функций, или изменить их:

  • Контроллер: controllers/CountryController.php
  • Модели: models/Country.php и models/CountrySearch.php
  • Вид: views/country/*.php

Info: Gii разработан как тонконастраиваемый и расширяемый инструмент генерации кода. Используя его с умом, вы можете значительно ускорить скорость разработки приложений. Для более подробной информации, пожалуйста, обратитесь к разделу Gii.

Заключение #

В этом разделе вы узнали, как использовать Gii для генерации кода, реализующего полную функциональность CRUD для данных, хранящихся в таблице базы данных.

Источник

Оцените статью