Имя удаленного контроллера из URL CakePHP

#php #cakephp

#php #cakephp

Вопрос:

У меня проблема с перезаписью URL.

Проблема, с которой я сталкиваюсь, заключается в том, что в настоящее время наши URL-адреса выглядят следующим образом:

http://www.xyz.com/sc_users/index

Я не хочу, чтобы имя контроллера отображалось в этом URL.

Есть ли способ добиться этого??

Прежде всего, поблагодарите своих ребят..

Например, у меня есть 8 контроллеров, я не хочу, чтобы имя контроллера отображалось в моем URL …. это то, что я хочу..

Если быть более точным, в моем URL нет имени контроллера

Ответ №1:

Вы можете определять пользовательские маршруты в app/config/routes.php . Вы найдете все о маршрутах в кулинарной книге CakePHP в разделе Определение маршрутов. Например, пользовательский маршрут может выглядеть следующим образом:

 Router::connect(
    '/the_url_you_want_to_use/*', array('controller' => 'sc_users', 'action' => 'index')
);
  

Ответ №2:

Вам нужно прочитать о маршрутизации CakePHP, посмотрите на примеры в разделе «определение маршрутов». Уточните в своем вопросе, как бы вы на самом деле хотели, чтобы выглядели ваши URL-адреса, и мы сможем помочь вам более эффективно.

Комментарии:

1. Прежде всего, поблагодарите своих ребят.. Например, у меня есть 8 контроллеров, я не хочу, чтобы имя контроллера отображалось в моем URL …. это то, что я want..to будьте точнее

Ответ №3:

Это просто: есть файл с именем routes.php в каталоге / config : Вы можете переписать URL-адрес следующим образом :

 Router::connect('/pages/*', array('controller' => 'cmsPage', 'action' => 'render'));
  

Вы можете передавать более сложные переменные своему контроллеру :

 Router::connect('/:id-:lang-:profile-:firstName-:lastName-:profile.htm',
    array('controller' => 'profiles','action' => 'view'),
    array('id'=>'[0-9]*', 'lang'=>'fr','firstName'=>'[^-]*','lastNAme'=>'[^-]*','profile' => $util->keywords['profiles'][0]['fr'], 'pass' => array('id', 'lang'),'profile' => $util->keywords2['profiles'][0]['en'])
)
  

;

Как вы можете видеть в последнем примере, я передал контроллеру 2 параметра через ‘pass’ => array(‘id’, ‘lang’)