【发布时间】:2019-07-26 06:41:46
【问题描述】:
我在 Phalcon 中定义了以下路线:
$router->add('/products', array(
'module' => 'products',
'namespace'=>'MyNameSpace\Products\Controllers\\',
'controller'=>'index',
'action' => 'index'
));
$router->add('/products/:params', array(
'module' => 'products',
'namespace'=>'MyNameSpace\Products\Controllers\\',
'controller'=>'index',
'action' => 'index',
'params' => 1
));
$router->add('/products/:action', array(
'module' => 'products',
'namespace'=>'MyNameSpace\Products\Controllers\\',
'controller'=>'index',
'action' => 1
));
$router->add('/products/:action/:params', array(
'module' => 'products',
'namespace'=>'MyNameSpace\Products\Controllers\\',
'controller'=>'index',
'action' => 1,
'params' => 2
));
我有以下格式的网址
http://www.example.com/products/3029-baggrys-oats-2-kg-pack
=> 产品详情页面,这里“3029-baggrys-oats-2-kg-pack”是一个参数
http://www.example.com/products/save-to-wish-list => 这里的“save-to-wish-list”是对控制器的操作
问题 第一个 url 旨在链接到产品详细信息页面,第二个 url 旨在让用户将产品保存到愿望清单。
但是两个 url 都匹配第三个路由。我知道我在定义路线时一定做错了什么。谁能指出解决这种情况的更好方法是什么?
谢谢
【问题讨论】:
-
您正在创建相同的前缀 URL。唯一不同的是第 2 路和第 3 路的婴儿车