我希望能够根据从 uri 收集的数据选择控制器。
我有一个类别表和一个子类别表。基本上我有一个以下格式的 URL (:any)/(:any)
。第一个通配符是城市蛞蝓(即爱丁堡),第二个通配符将是一个类别或子类别的蛞蝓。
因此,在我的路线中,我使用该路线搜索类别,如果找到,我想使用控制器:forsale 和方法:get_category。如果它不是一个类别,我会查找子类别,如果我在那里找到它,我想使用控制器:forsale 和方法: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
,但我需要一种方法来判断第二个蛞蝓是哪一个。
最后,(:any)/(:any) 后面可能还有其他正在使用的 URL,所以我需要它才能继续寻找其他路由。