2017-06-15 47 views

回答

1

框架不允许路线查询字符串,只有路径。

所以,要么你修改你的路由,包括在URI路径参数:

;routes.ini 
GET /search/@category = MyController->searchByCategory 
GET /search/@category/@term = MyController->searchByCategoryAndTerm 

(这需要参数的严格的顺序)

或者你的路线都到同一个控制器和解析查询字符串有:

;routes.ini 
GET /search = MyController->search 
class MyController { 

    function search(\Base $f3) { 
    $category=$f3->get('GET.category); 
    $term=$f3->get('GET.term'); 
    //etc. 
    } 

} 

如果您正在实施搜索表单,则第二种解决方案看起来最合适。

+0

我同意第二种形式更合适,但我应该如何在routes.ini中编写路由;这是我缺乏的地方。应该像GET/search/*一样吗? – Didiergm

+0

如果对别人有用,可以使用简单的GET /搜索路径以及建议的手动解码。完美的感谢 – Didiergm

+0

'GET/search'就够了。查询字符串不需要出现在路由定义中。我已经更新了答案。 – xfra35