2016-05-21 14 views
0

Um diese Laravel-Route zu verkürzen, versuche ich zu vermeiden, Code mehrfach für eine Route zu schreiben.Wie laravel Wiederholungsrouten zu verkürzen?

Route::group(['domain' => 'maindomain.com'], function() 
    { 
     Route::get('/signup', function() { 
     return view('app.signup'); 
     }); 
     Route::post('signup', '[email protected]'); 
     Route::get('/signup2', function() { 
      return view('app.signup2'); 
     }); 
     Route::post('signup2', '[email protected]'); 
}); 

Route::group(['domain' => 'subdomain.maindomain.com'], function() 
    { 
     Route::get('/signup', function() { 
     return view('app.signup'); 
     }); 
     Route::post('signup', '[email protected]'); 

     Route::get('/signup3', function() { 
      return view('app.signup3'); 
     }); 
     Route::post('signup3', '[email protected]'); 
}); 

Wo gemeinsamer Code ist

Route::get('/signup', function() { 
    return view('app.signup'); 
}); 
Route::post('signup', '[email protected]'); 

I wie unten Code gemacht habe, aber wie oben Route verwenden, in?

$commonRoute = function(){ 
    Route::get('/signup', function() { 
     return view('app.signup'); 
    }); 
    Route::post('signup', '[email protected]'); 
} 

Antwort

1

Platz gemeinsame Strecken außerhalb einer Domäne Route Gruppe

Route::group(['domain' => 'maindomain.com'], function() { 
    Route::get('/signup2', function() { 
     return view('app.signup2'); 
    }); 

    Route::post('signup2', '[email protected]'); 
}); 

Route::group(['domain' => 'subdomain.maindomain.com'], function() { 
    Route::get('/signup3', function() { 
     return view('app.signup3'); 
    }); 
    Route::post('signup3', '[email protected]'); 
}); 

Route::get('/signup', function() { 
    return view('app.signup'); 
}); 

Route::post('signup', '[email protected]'); 

oder Ort commo n Routen in einer anderen Datei mit dem Namen vielleicht, common.php

Route::group(['domain' => 'subdomain.maindomain.com'], function() { 
    include(__DIR__.'/common.php'); 
}); 
+0

Funktionieren sowohl "maindomain.com/signup" als auch "subdomain.maindomain.com/signup"? mit dem obigen ersten Code? – gaurav

+0

Sie werden in der Tat. –

+0

Dank @Ben, Es ist sehr gut ans :), Nicht Sie denken, es ist auch eine gute Frage, Und hilfreich für andere. – gaurav

1

Verwenden

Route::controller('signup', 'UsersController'); 
+0

Wird dies auch für Subdomain funktionieren? – gaurav

+2

Beachten Sie, dass der implizite Controller, der 'Route :: controller' verwendet, auf Laravel 5.2 nicht mehr unterstützt wird https://laravel.com/docs/master/upgrade#upgrade-5.2.0 – Rifki

+0

@gaurav Ja funktioniert für alle URLs mit der 'Anmeldung' – Kroonal

1

Fahren Sie mit $commonRoute als zweiten Parameter auf Route::group

// Common route 
Route::group(['domain' => 'subdomain.maindomain.com'], $commonRoute); 
Route::group(['domain' => 'maindomain.com'], $commonRoute); 

// Others 
Route::group(['domain' => 'subdomain.maindomain.com'], function() { 
    Route::get('test', function() {}; 
}); 

Route::group(['domain' => 'maindomain.com'], function() { 
    Route::get('test2', function() {}; 
}); 
+0

Was ist mit anderen sagen "signup2" in der ersten und 'signup3' in der zweiten? – gaurav

Verwandte Themen