0

私はProfileControllerとを持っていCategoryControllerます。

次のルートでユーザーのプロファイルを表示したい:

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

Facebookがそうしているように。したがって、これを自分の中で処理したいので、次ProfileControllerのようなルートになりました。

Route::get('/{userSlug}', array('uses' => 'ProfileController@getProfile'));

それは問題なく、正常に動作します。しかし今、私は自分のカテゴリーを次のように表示したいと思っています:

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

問題は、ルートを次のようにすることですRoute::get('/{categorySlug}', array('uses' => 'CategoryController@getCategory'));が、このルートはすでにプロファイルで使用されています。

コントローラーを 1 つだけ使用して、スラッグが userSlug かcategorySlug.

ここでのベストプラクティスは何ですか?

4

1 に答える 1

0

ユーザー ルートが常にの形式である場合は、正規表現の制約/firstname.lastnameを試すことができます。

Route::get('/{userSlug}', array('uses' => 'ProfileController@getProfile'))
        ->where('name', '[a-z]+\.[a-z]+');

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

于 2016-11-30T09:01:49.293 に答える