2017-10-29 2 views
1

Ich benutze Laravel, um eine Admin-Site zu bauen, und müssen alle Controller Routen Modelle in einem Ordner, so dass ich die Routen und Controller in diesen Ordner verschoben und RouteServiceProvider geändert. php dazu:Route [Login] nicht definiert nach dem Verschieben von Routen Ordner

<?php 

    namespace App\Providers; 

    use Illuminate\Support\Facades\Route; 
    use Illuminate\Foundation\Support\Providers\RouteServiceProvider as 
    ServiceProvider; 
class RouteServiceProvider extends ServiceProvider 
{ 
/** 
* This namespace is applied to your controller routes. 
* 
* In addition, it is set as the URL generator's root namespace. 
* 
* @var string 
*/ 
protected $namespace = 'App\Application\Controllers'; 

/** 
* Define your route model bindings, pattern filters, etc. 
* 
* @return void 
*/ 
public function boot() 
{ 
    // 

    parent::boot(); 
} 

/** 
* Define the routes for the application. 
* 
* @return void 
*/ 
public function map() 
{ 
    $this->mapApiRoutes(); 

    $this->mapWebRoutes(); 

    // 
} 

/** 
* Define the "web" routes for the application. 
* 
* These routes all receive session state, CSRF protection, etc. 
* 
* @return void 
*/ 
protected function mapWebRoutes() 
{ 
    Route::middleware('web') 
     ->namespace($this->namespace) 
     ->group(base_path('app/Application/routes/web.php')); 
} 

/** 
* Define the "api" routes for the application. 
* 
* These routes are typically stateless. 
* 
* @return void 
*/ 
protected function mapApiRoutes() 
{ 
    Route::prefix('api') 
     ->middleware('api') 
     ->namespace($this->namespace) 
     ->group(base_path('app/Application/routes/api.php')); 
} 

}

es funktioniert gut, aber geben sie mir folgende Fehlermeldung:

Strecke [Anmelden] nicht definiert.

Und hier ist meine Routen-Datei:

<?php 

Route::get('/' , '[email protected]'); 

Und mein Heimsteuerung

<?php 

namespace App\Application\Controllers; 

use Illuminate\Http\Request; 

class HomeController extends Controller 
{ 
/** 
* Create a new controller instance. 
* 
* @return void 
*/ 
public function __construct() 
{ 
    $this->middleware('auth'); 
} 

/** 
* Show the application dashboard. 
* 
* @return \Illuminate\Http\Response 
*/ 
public function index() 
{ 
    return view('home'); 
} 
} 

Antwort

0

In Ihrer Route-Datei haben Sie gerade diese:

<?php 
Route::get('/' , '[email protected]'); 

Wie Sie es sehen können ist nur ein Routing und das funktioniert nur für eine Seite, in der Tat, wenn Sie von $ this-> Middleware ('Auth') verwenden möchten; Sie sollten das Routing davon definieren.

etwas wie folgt aus:

Route::get('login', 'Auth\[email protected]')->name('login'); 

Sie verweigert $ this-> Middleware ('Auth'); für Controller von Home und es ist Kraft, Login-Route zu finden, um das umzuleiten. so ändern Sie Ihre Konstruktor zu folgenden Code:

public function __construct() 
{ 

} 
+0

ut i Auth für diesen Controller –

+0

verwenden müssen, so sollten Sie Controller davon definieren, überprüfen https://laravel.com/docs/5.5/authentication für weitere Informationen über auth und die Verwendung dieser –

+0

Ich hatte Auth Ordner und es funktionierte, bevor Sie die Routen jetzt itdon't –

Verwandte Themen