Почему gii при создании CRUD меняет мой путь просмотра с ldopt на ld-opt?

Является ли ldopt зарезервированным словом в yii/php по какой-то причине.

Фактическая таблица называется LdOpt, Таким образом, созданная модель также называется LdOpt

Затем при генерации CRUD я устанавливаю класс модели в app\models\LdOpt и класс поиска модели для app\models\LdOptSearch и контроллер для app\controllers\LdOptControllerв конце концов оставляя путь просмотра пустым

Но GII меняет путь от ожидаемого ldopt в ld-opt как в режиме предварительного просмотра

Code          File                  Action  
controllers   /LdOptController.php  create  
models        /LdOptSearch.php      create  
views         /ld-opt/_form.php     create  
views         /ld-opt/_search.php   create  
views         /ld-opt/create.php    create  
views         /ld-opt/index.php     create  
views         /ld-opt/update.php    create  
views         /ld-opt/view.php      create

Просто интересно, почему он это сделал, потому что никогда не обращал внимания на имя файла, а просто генерировал их и тратил время на маршрут ?r=ldopt/index и т.д., прежде чем я посмотрел на файлы на диске.

Также в качестве эксперимента я попытался переместить каталог обратно в ldopt и это вызывает 404 не найден в YII

1 ответ

Решение

Имя пути Yii2 для соглашения контроллера.

Наименование класса контроллера

Имена классов контроллеров могут быть получены из идентификаторов контроллеров в соответствии со следующей процедурой:

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

Ниже приведены некоторые примеры, если предположить, что пространство имен контроллера принимает значение по умолчанию app\controllers:

article becomes app\controllers\ArticleController;
post-comment becomes app\controllers\PostCommentController;
admin/post-comment becomes app\controllers\admin\PostCommentController;
adminPanels/post-comment becomes app\controllers\adminPanels\PostCommentController.

приведенная выше информация взята с http://www.yiiframework.com/doc-2.0/guide-structure-controllers.html

Другие вопросы по тегам