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。クロージャを使用し、URLセグメントを調べた後に適切なコントローラを呼び出しますか?
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