2016-12-12 2 views
1

Ich möchte Users Shop in meiner Anwendung erstellen. Standard-URLs sind:Zwei Schrägstriche in URL mit optionalen Parametern in Laravel 5

site.com/cars 
site.com/parts 

Wenn Benutzer eigenen Shop Urls wie diese gesehen erstellen:

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

Und wenn der Benutzer nicht Speicher erstellen, Parameter {user_name} ist leer und Urls gesehen wie:

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

Wie kann ich Routen oder Middlewares dafür erstellen?

Vielen Dank.

UPD:

Meine Strecken

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

Ich würde vorschlagen, dass Sie separate Routen für Strecken mit einer user_name erstellen und ohne. Können Sie uns zeigen, wie Ihre Routen definiert sind? – michaeltintiuc

+0

sollten Sie für separate Controller gehen. – nozzleman

+0

Code für Routenerstellung angeben –

Antwort

0

denke ich, was Sie suchen ist dies:

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

     return view 
}); 

Die ? macht die user_name oprional und die null benötigt wird und jeder sein kann anderer Standardwert

Für was Sie fragen (mit benannten Controller) können Sie es auf diese Weise tun. Fügen Sie diese auf Ihre Route Gruppe:

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

Dann im Controller tun:

public function car_names($user_name = null){ 

    return view; 
} 

Quelle: laravel optional parameters

+0

Ich spezifiziere Routennamen für Controller-Aktionen (siehe UPD-Abschnitt in meiner ersten Nachricht). Ich denke, dass Sie Lösung nicht für mich arbeiten – halenharper

+0

siehe aktualisierte Antwort –