我有一个简单的GET表单,允许用户输入一个位置,然后选择几个其他选项并执行搜索。
所以现在这个动作的url是:控制器/搜索?面积= london& option1 = whatever& option2 = whateverelse
我希望url是:控制器/搜索/伦敦? option1 = whatever& option2 = whateverelse
,换句话说,该区域的GET参数将被合并到url中,但不作为NVP。
有办法做到这一点吗?我对路由有点困惑,或者是否有其他方法?
谢谢
使用路由和CakeDC搜索插件。如果你还没有读过路由,你应该读一下,它是一个非常强大的功能。
Route::connect('/search/:city/*', array('controller' => 'search', 'action' => 'index'), array('pass' => array('city'), 'city' => 'a-zA-Z0-9_-]+')));
只是写下来没有测试,试一下,如果不工作,付出一些努力。这将使城市成为SearchController的第一个参数::index($city = null);
搜索插件将帮助您将查询参数映射到可用于从数据库检索数据的搜索条件,请参阅其自述。我知道怎么做了。