маршрутизация cakePhp, как мне создать маршрут, который ...? - PullRequest
0 голосов
/ 16 мая 2011

Я хочу использовать роутер торта для дружественных URL.Мои URL этого типа:

http://domain/some_text/categories/view/4/5/6
http://domain/other_text/articles/read/new-stuff
http://domain/xyz_text/charts/list/latest/10

Основная идея состоит в том, что первая часть URL (some_text, other_text, xyz_text) будет перенаправлена ​​в качестве параметра к действию, но не какименованный параметр.

  1. Можно ли построить такой маршрут по одному маршруту?
  2. Да / Нет - Как?
  3. Это способ достижения этой цели?
  4. Как создать ссылку на такой маршрут, используя метод HtmlHelper:link()?(некоторые тесты дали мне http://domain/Controller/action/params../some_name:some_text ...)

1 Ответ

1 голос
/ 17 мая 2011

Вы можете сделать что-то подобное, но вам нужно будет создать по одному для каждого контроллера.Вот пример для контроллера категорий, который вы указали в своем вопросе:

http://domain/some_text/categories/view/4/5/6


Router::connect(
    '/:pagevar/:controller/:action/*',
    array(
       'controller' => 'categories',
       'action' => 'view',
    ),
    array(
       'pass' => 'pagevar'
    )
);

Затем, чтобы получить доступ к переменной some_text, вы можете просто ссылаться на него через параметры:

$this->params['pagevar']

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

...