Intereting Posts
Facebook SDK вернул ошибку: проверка подделки на основе перекрестного запроса не удалась. Параметр «состояние» из URL-адреса и сеанса не соответствует Zend_Mail_Header_HeaderValue :: isValid недействителен со специальными символами MongoDB Duplicate Documents даже после добавления уникального ключа Разница между файлом, file_get_contents и fopen в PHP Именованный захват в PHP с использованием регулярного выражения Легкая, основанная на PHP, структура макета … знаете что-нибудь? переопределение upload_max_filesize Что означает «zend_mm_heap corrupted» означает Вставка символа зарегистрированного товарного знака / символа авторского права в MySQL с PHP Как подсчитать одинаковые значения в массиве и сохранить его в переменной? Лучший способ избежать включения таблиц стилей / внешних js более одного раза на странице Переключение с мобильной версии на полный сайт (настольная версия) Doctrine2: лучший способ обработки многих-ко-многим с дополнительными столбцами в справочной таблице Разработка Facebook – логин Zend Elements и setRequired, setAllowEmpty, NotEmpty

Псевдоним контроллера CakePHP не работает полностью

У меня есть новый вопрос, связанный с этим вопросом , но поскольку вопросы не совпадают вообще, я создаю эту новую тему. Но это хорошо.


Я изменил свое мнение о 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')); ...