我發佈了Laravel 5.2實際路由使用案例,並希望爲其提供答案。問題:用於多個不同數據庫查找的相同url結構。 請不要發表關於如何使URL結構更簡單的評論,這是結構必須的方式,許多網站在這個部分使用它。Laravel路由實際使用案例
URL結構
domain.com/{slug1}/{slug2}/{slug3}
// e.g. domain.com/cottages/slovakia/cheap
// {slug1} - DB table accommodation_types (20+)
// {slug2} - DB table locations (300+)
// {slug3} - DB table accommodation_categories e.g. cheap etc. (100+)
domain.com/{slug1}/{slug2}
// e.g. domain.com/cottages/cheap OR domain.com/slovakia/cheap
// {slug1} - DB table accommodation_types OR locations
// {slug2} - DB table locations OR accommodation_categories
domain.com/{slug}
// DB table accommodation (10000+ entries)
// or
// accommodation_types OR locations OR accommodation_categories
你會怎麼做好聽?我有這些想法。
a。檢查網址段後,使用關閉並調用相應的控制器?
Route::get('{slug1}', function ($slug1, $slug2 = null, $slug3 = null)
{
// Check accommodation
$object = Accommodation::where('slug', $slug1)->first();
if(!is_null($object))
{
return app()->make('AccommodationDetailController')->view($object);
}
// Check type
$type = AccommodationType::where('slug', $slug1)->first();
if(!is_null($type))
{
return app()->make('AccommodationListController')->view($type);
}
// etc.
});
b。通過for循環生成數千個url並緩存它呢?
我明白任何其他偉大的解決方案:)
爲什麼downvoting?不明白。 – Kyzo