我有一个简单的GET表单,允许用户输入一个位置,然后选择其他几个选项并执行搜索。
所以在这一刻,这个动作的网址是: ?控制器/搜索面积=伦敦&安培;选项1 =任何&安培;选项2 = whateverelse
我想要的网址是: ?控制器/搜索/伦敦选项1 =任何&安培;选项2 = whateverelse
所以换句话说,该区域的GET参数将被合并到网址中,但不会作为NVP。
有办法做到这一点吗?我对路由有点困惑,或者是否有另一种方式?
由于
答案 0 :(得分:1)
使用routing和CakeDC search plugin。如果你还没有阅读有关路由的信息,你应该这样做,这是一个非常强大的功能。
Route::connect('/search/:city/*', array('controller' => 'search', 'action' => 'index'), array('pass' => array('city'), 'city' => 'a-zA-Z0-9_-]+')));
只是在没有测试的情况下将其写下来,如果不起作用,请尝试将其付诸实践。这将使该城市成为SearchController :: index($ city = null);
的第一个arg搜索插件将帮助您将查询参数映射到可用于从数据库中检索数据的搜索条件,请参阅readme.md如何执行此操作。