У меня есть сайт электронной коммерции и вам нужно создать некоторые пользовательские 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']
]);
Спасибо. Но когда я попробовал этот скрипт, я получаю «ButtonController», который не смог найти исключение. Ссылка - http: // localhost/sewcool/buttons/test-123658 – Babitha
Исправлено. Я удалил ключ «slug» из последнего параметра. Обновлен мой вопрос. Спасибо за помощь. – Babitha
Нет проблем. Рад, что ты понял это! –