2016-12-12 4 views
1

私のアプリケーションにユーザーのショップを作成したいと思います。 デフォルトのURLは以下のとおりです。URLに2つのスラッシュ(Laravel 5のオプションパラメータ付き)

site.com/cars 
site.com/parts 

ユーザーは、このように見る自分の店のURLを作成する場合:

site.com/user_name/cars 
site.com/user_name/parts 

、ユーザーがストアを作成しない場合は、パラメータ{user_name}が空であるとURLは次のように表示:

site.com//cars 
site.com//parts 

このためにルートまたはミドルウェアを作成するにはどうすればよいですか?

ありがとうございます。

はUPD:

Route::get('site.com/{user_name?}/cars', function ($user_name = null){ 

     return view 
}); 

?がoprional user_nameを行い、nullが必要であり、いずれかになります。

私のルートは

Route::group(['domain' => 'site.com'], function() { 

    Route::group(['prefix' => LaravelLocalization::setLocale(), 'middleware' => ['localeSessionRedirect', 'localizationRedirect', 'maintenance_mode']], function() 
    { 
     Route::group(['prefix' => '{store_name?}', 'namespace' => 'UserOnlineShop', 'middleware' => ['online_shop_tarif']], function(){ 
      Route::get('/', ['as' => 'user_store.home', 'uses' => '[email protected]']); 
      Route::get('parts/', ['as' => 'parts.index', 'uses' => '[email protected]_parts']); 
      Route::get('catalog/cars_for_parts', ['as' => 'catalog.auto_brands', 'uses' => '[email protected]_brands']); 
     }); 
    }); 
}); 
+1

私はあなたがuser_nameのとないのルートに別々のルートを作成することをお勧めしたいです。ルートの定義方法を教えてください。 – michaeltintiuc

+0

あなたは別のコントローラのために行く必要があります。 – nozzleman

+0

ルートクリエイターコードを提供する –

答えて

0

私は、あなたが探しては、この何であるかと思いますその他のデフォルト値。

名前付きコントローラを使用して質問すると、このようにすることができます。コントローラに続いて

Route::get('site.com/{user_name?}/cars', ['as' => 'site.cars', 'uses' => '[email protected]_names']); 

ん:あなたのルートグループにこれを追加

public function car_names($user_name = null){ 

    return view; 
} 

出典:laravel optional parameters

+0

コントローラのアクションのルート名を指定します(最初のメッセージのUPDセクションを参照)。私はあなたのソリューションは私のために働かないと思う – halenharper

+0

更新された答えを見る –

関連する問題