2016-11-30 12 views
0

私はProfileControllerCategoryControllerです。異なるレベルのLaravel 5.2の動的ルート

私は、次のルートに私のユーザーのプロファイルを表示する:Facebookはそれをやっているだけのように

my.domain.com/firstname.lastname 
my.domain.com/firstname2.lastname2 
... 

。問題ありません

Route::get('/{userSlug}', array('uses' => '[email protected]'));

をし、それが正常に動作します:したがって、私はProfileControllerので、私はこのようなルートになってしまった私の中にこれを処理します。しかし、今、私はこのように私のカテゴリを見せたい:

my.domain.com/category-1 
my.domain.com/category-2 
... 

問題は、私は、このようなルートを行うだろうということ、である:Route::get('/{categorySlug}', array('uses' => '[email protected]'));が、このルートは、すでにプロファイルによって使用されています。

私は、スラッグがuserSlugかcategorySlugであるかどうかをチェックすることができますが、実際にはプロファイルロジックをカテゴリロジックから自分のコントローラに分けたいと思っています。

ここでベストプラクティスは何ですか?ユーザールートが常に/firstname.lastnameの形態である場合

+0

カテゴリのスラッグは実際には「カテゴリ1」と「カテゴリ2」などですか? – TunaMaxx

+0

いいえ、実際には任意のテキストにすることができます。 – Phil

答えて

0

、あなたはRegular Expression Constraintsを試みることができる:

その後
Route::get('/{userSlug}', array('uses' => '[email protected]')) 
     ->where('name', '[a-z]+\.[a-z]+'); 

、あなたのキャッチオールカテゴリのルートでそれをフォローアップ。ただし、代わりにカテゴリURL(/category/category-1など)のプレフィックスを付ける方がはるかに良いでしょう。

+0

ありがとう、それは私が必要なものです。私はルート定義の背後にある "どこ"を行うことができるか分からなかった。私は基本的に、ProfileControllerに入る方法を探していました。スラッグがプロファイルスラッグであるかどうかをチェックし、そうでなければルートファイルに戻り、次のマッチングルートを取得してCategoryControllerに到達しました。しかし、これは不可能なようです。 – Phil

関連する問題