0

我有一个简单的 GET 表单,它允许用户输入一个位置,然后选择其他几个选项并执行搜索。

因此,此时此操作的网址是:controller/search?area=london&option1=whatever&option2=whateverelse

我希望网址是:controller/search/london?option1=whatever&option2=whateverelse

所以换句话说,该区域的 GET 参数将被合并到 URL 中,而不是作为 NVP。

有没有办法做到这一点?我对路由有点困惑,或者是否有其他方法?

谢谢

4

1 回答 1

1

使用路由CakeDC 搜索插件。如果您还没有阅读有关路由的信息,您应该阅读它,它是一个非常强大的功能。

Route::connect('/search/:city/*', array('controller' => 'search', 'action' => 'index'), array('pass' => array('city'), 'city' => 'a-zA-Z0-9_-]+')));

只是写下来,没有测试,如果不起作用,请尝试一下。这将使城市成为 SearchController::index($city = null); 的第一个参数。

搜索插件将帮助您将查询参数映射到可用于从数据库中检索数据的搜索条件,请参阅它的 readme.md 操作方法。

于 2013-06-05T10:19:48.820 回答