2016-12-12 6 views
1

내 응용 프로그램에 사용자의 상점을 만들고 싶습니다. 기본 URL은 다음과 같습니다 사용자가 다음과 같이 볼 자신의 가게 URL을 만드는URL에 두 개의 슬래시 (Laravel 5의 선택적 매개 변수 사용)

site.com/cars 
site.com/parts 

경우

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

업데이트 된 답변보기 –