2016-02-11 2 views
0

У меня есть сайт электронной коммерции и вам нужно создать некоторые пользовательские URL-адреса. Эти URL-адреса будут генерироваться динамически. Структура будетCakePHP 3 маршрутизация динамический url

Пример URL: http://website.com/categoryname/product-title

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

website.com/buttons/CP1 или website.com/ribbons/red так далее

В любом случае эти URL-адреса должны быть перенаправлены на http://website.com/products/productdetail/product-title

Я пробовал следующий сценарий:

$routes->connect(
    '/:type/:slug/*', 
    ['controller' => 'Products','action' => 'productDetail'],  
    ['type' => '\b(?:(?!admin)\w)+\b'], 
    [ 
     'slug' => '[A-Za-z-]+', 
     'pass' => [ 
      'slug' 
     ] 
    ] 
); 

['type' => '\b(?:(?!admin)\w)+\b'] является, чтобы исключить другие контроллеры. В этом случае «Администратор». Это работает, но параметры, прошедшие через URL-адрес (название продукта), не попадают в функцию контроллера (productDetail)

Любая помощь будет оценена.

Устранено. Обновлен сценарий ниже.

$routes->connect(
'/:type/:slug/*', 
['controller' => 'Products','action' => 'productDetail'], 
[ 
    'type' => '\b(?:(?!admin)\w)+\b', 
    'pass' => ['slug'] 
]); 

ответ

0

Согласно API функция connect() принимает только 3 параметра, и вы на самом деле проходит 4. См Cake Routing Router - Connect

Я не проверял это на всех, но я думаю, вы должны заново написать это :

$routes->connect(
    '/:type/:slug/*', 
    ['controller' => 'Products','action' => 'productDetail'], 
    [ 
     'type' => '\b(?:(?!admin)\w)+\b', 
     'slug' => '[A-Za-z-]+', 
     'pass' => ['slug'] 
    ] 
); 
+0

Спасибо. Но когда я попробовал этот скрипт, я получаю «ButtonController», который не смог найти исключение. Ссылка - http: // localhost/sewcool/buttons/test-123658 – Babitha

+1

Исправлено. Я удалил ключ «slug» из последнего параметра. Обновлен мой вопрос. Спасибо за помощь. – Babitha

+0

Нет проблем. Рад, что ты понял это! –

Смежные вопросы