我希望能夠根據從uri收集的數據選擇控制器。動態路由
我有一個分類表和一個子分類表。基本上我有一個以下格式的網址(:any)/(:any)
。第一個通配符是一個城市塞爾維亞(即愛丁堡),第二個通配符將是一個類別或一個子類別。
因此,在我的路線中,我搜索具有該路線的類別,如果找到它,我想使用controller:forsale和method:get_category。如果它不是一個類別,我會查找子類別,如果我在那裏找到它,我想使用controller:forsale和method:get_subcategory。如果它不是一個子類別,我想繼續尋找其他路線。
Route::get('(:any)/(:any)', array('as'=>'city_category', function($city_slug, $category_slug){
// is it a category?
$category = Category::where_slug($category_slug)->first();
if($category) {
// redirect to controller/method
}
// is it a subcategory?
$subcategory = Subcategory::where_slug($category_slug)->first();
if($subcategory) {
// redirect to controller/method
}
// continue looking for other routes
}));
首先我不知道如何在這裏調用控制器/方法,而無需實際重定向(因此再次更改URL)。
其次,這是甚至是這樣做的最好方法嗎?我開始使用/city_slug/category_slug/subcategory_slug
。但我只想顯示city_slug/category|subcategory_slug
,但我需要一種方法來確定第二塊slu is是什麼。
最後,可能會有其他網址在使用中,後面跟着(:any)/(:any),所以我需要它能夠繼續查找其他路線。