Meine App sollte Admin, Mitglieder und öffentliche Bereiche, von admin.mydomain.com, members.mydomain.com und www.mydomain.com zugeordnet haben. Dokumentation enthält das folgende Beispiel in Bezug auf Routing Subdomain:Laravel 5 Routing: Admin, Mitglieder, öffentliche
Route::group(['domain' => '{account}.myapp.com'], function() {
Route::get('user/{id}', function ($account, $id) {
//
});
});
Aber ich will nicht auf andere Weise codieren oder verwenden Sie die zweiten Level-Domainnamen in Route (myapp.com in diesem Beispiel). Also machte ich es so:
Route::pattern('domain', '.+\..+');
Route::group(['namespace' => 'Admin', 'domain' => 'admin.{domain}', 'middleware' => 'auth'],
function() {
Route::get('/edit/{id}/{name}', '[email protected]');
});
Dann machte ich einen Controller wie
class MyController extends Controller
{
function index($id, $name) {
dd($id);
}
}
und wenn ich admin.mydomain.com/edit/1/alex navigieren, bekomme ich Ausgang "admin". Natürlich passiert es, weil ich {domain} als Muster verwende. Aber ich möchte Domain nicht als erstes Argument in jeder Aktion aller Admin-Controller erhalten. Bitte hilf mir, das richtig zu machen.
Ich habe dies nicht persönlich versucht, aber Sie sollten in der Lage sein, nur eine Middleware zwischen dem Controller und der Anfrage selbst zu setzen. Sie erhalten nicht das erste Argument als Subdomain im Controller, es sei denn, Sie möchten es an einige/alle Controller übergeben. – Andrew