У меня есть новый вопрос, связанный с этим вопросом , но поскольку вопросы не совпадают вообще, я создаю эту новую тему. Но это хорошо.
Я изменил свое мнение о logs
чтобы вести log
, logs
в порядке. Но у меня есть еще один контроллер под названием WikisController
, в этом случае я бы очень хотел изменить URL. Я просто ненавижу, что URL будет example.com/wikis/subject.html
, я хочу, чтобы он был example.com/wiki/subject.html
. Он намного чище, и соглашение теперь соответствует 100% с другими сайтами, где его также называют wiki
, а не wikis
. Но я хочу, чтобы контроллер назывался WikisController
, из-за соглашения CakePHP
.
Ну, теперь возникает настоящая проблема. В настоящее время я использую следующую маршрутизацию в Config/routes.php
:
Router::connect('/wiki/:action/*', array('controller' => 'wikis')); Router::connect('/wiki/*', array('controller' => 'wikis'));
Это часть кода, используемая решением в другой теме . Но теперь у меня проблемы. Ну, это не очень большая проблема, потому что все работает нормально. Но мне не нравится URL-адрес.
Когда я создаю ссылку как следующее из example.com/wiki/edit.html
:
echo $this->Html->link('Wiki overview', array( 'controller' => 'wikis', 'action' => 'index', 'ext' => 'html' ));
Он создает ссылку на example.com/wiki/index.html
полностью отлично, и он работает, но я не хочу показывать index.html
, я просто этого не делаю. Это слово добавочно в URL-адресе, и пользователю не нужно понимать, где он находится.
Я создаю link
с controller
и ключом action
из-за небольшой ошибки, с которой я сталкивался раньше. Когда я не указал action
, он создаст ссылку на example.com/edit.html
которую я не хочу, очевидно. Поэтому я должен добавить в массив ключ action => index
. Я не уверен, что это настоящая ошибка, но это не имеет значения. Index = index
и ничего не меняется. Хорошо, что я уверен, что мой URL-адрес указывает на правильную страницу, поэтому добавление action
для меня не является проблемой.
Просто для хорошего уведомления:
Когда я создаю ссылку точно так же, как я сделал выше, на example.com/flights/index.html
со страницы example.com/flights/add.html
она удалит часть /index
из url и просто создаст URL-адрес example.com/flights.html
который намного чище.
Поэтому он должен что-то сделать с маршрутизацией, но я не могу понять, что.
Если я правильно вас понял, вам понадобится маршрут, который связывает /wiki
с действием index
контроллера:
Router::connect('/wiki', array('controller' => 'wikis', 'action' => 'index')); Router::connect('/wiki/:action/*', array('controller' => 'wikis')); ...