2017-10-29 3 views
1

私はLaravelを使用して管理サイトを構築していますので、ルートとコントローラをこのフォルダに移動してRouteServiceProviderを変更しました。これにPHP:ルートルートを移動した後、ルート[ログイン]が定義されていません

<?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')); 
} 

}

それが正常に動作しますが、私は次のエラーを与える:

ルート[ログイン]は定義されていません。あなたのルートファイルで

<?php 

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

そして、私のホームコントローラ

<?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'); 
} 
} 

答えて

0

あなたはこの持っている:あなたがそこに見ることができるように

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

そしてここでは、私のルートファイルです実際には$ this-> middleware( 'auth')から使いたい場合は、1つのルーティングと1ページだけで動作します。そのルーティングを定義する必要があります。

このような何か:

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

あなたはの$ this - >ミドルウェア( '認証')を否定しました。ホームのコントローラ用で、それをリダイレクトするログインルートを見つける必要があります。その次のコードへのあなたのコンストラクタを変更します。

public function __construct() 
{ 

} 
+0

私はあなたがそれのコントローラーを定義する必要があり、このコントローラ –

+0

のために認証を使用する必要がUT、より多くの情報のためhttps://laravel.com/docs/5.5/authenticationをチェックしますauthとその使用について –

+0

私はauthフォルダを持っていて、今度はルートを移動する前に動いていました。 –

関連する問題