2017-06-15 46 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