如何在cakephp中创建自定义URL

如何在cakephp中创建自定义URL,php,cakephp,url-routing,Php,Cakephp,Url Routing,我已经创建了一个cakephp应用程序。我的URL看起来像 www.mysite.com/products/search/hardware 很好。但我希望URL看起来像 www.mysite.com/hardware 这可以通过设置路由连接来实现吗 谢谢你的帮助 谢谢 在控制器文件夹中创建硬件控制器如何。在控制器文件夹中创建硬件控制器如何。是的,您可以使用路由 Router::connect( '/hardware', array('controller' => 'pr

我已经创建了一个cakephp应用程序。我的URL看起来像

www.mysite.com/products/search/hardware
很好。但我希望URL看起来像

www.mysite.com/hardware
这可以通过设置路由连接来实现吗

谢谢你的帮助


谢谢

在控制器文件夹中创建硬件控制器如何。

在控制器文件夹中创建硬件控制器如何。

是的,您可以使用路由

Router::connect(
    '/hardware',
    array('controller' => 'products', 'action' => 'search', 'hardware')
);

有关任何类别名称发送到产品/搜索的更通用的解决方案,请参见

是,您可以使用发送

Router::connect(
    '/hardware',
    array('controller' => 'products', 'action' => 'search', 'hardware')
);

要获得更通用的解决方案,请参阅任何类别名称发送到产品/搜索,您可以添加如下内容

 Router::connect('/hardware',
                  array('controller' => 'products', 'action' => 'search'),
                  array('pass' => array('search'), 'search' => 'hardware'));
在routes.php文件中,但您必须为每个可搜索项目执行此操作

如果你想要自动化的东西,你将面临的问题是,你需要一种方法来区分你的可搜索产品与你拥有的所有其他型号的产品。所以,也许你应该满足于另一种类型的URL,比如

 www.mysite.com/products/hardware


并相应地使用适当的路由。

您可以添加如下内容

 Router::connect('/hardware',
                  array('controller' => 'products', 'action' => 'search'),
                  array('pass' => array('search'), 'search' => 'hardware'));
在routes.php文件中,但您必须为每个可搜索项目执行此操作

如果你想要自动化的东西,你将面临的问题是,你需要一种方法来区分你的可搜索产品与你拥有的所有其他型号的产品。所以,也许你应该满足于另一种类型的URL,比如

 www.mysite.com/products/hardware


并相应地使用适当的路线。

谢谢,我想到了这一点,但我还有其他类别,因此我必须创建更多的控制器。我认为他们的解决方案可能更简单。我从未真正理解路由器是如何工作的,但我觉得有点困惑,所以我倾向于避免使用它。对不起,谢谢,我想到了,但我还有其他类别,所以我必须创建更多的控制器。我认为他们的解决方案可能更简单。我从未真正理解路由器是如何工作的,但我觉得有点困惑,所以我倾向于避免使用它。很抱歉