2016-08-30 61 views
2

我試圖通過以下代碼將管理員重定向到儀表板頁面,但是當我輸入/dashboard時,瀏覽器顯示一個NotFoundHttpException錯誤頁面。

中間件(AdminCheck.php):
對不起,找不到您正在尋找的頁面。 laravel

<?php 

namespace App\Http\Middleware; 

use Closure; 

class AdminCheck 
{ 

    public function handle($request, Closure $next) 
    { 
     $user = auth()->authenticate(); 

     if ($user->role !== 'admin') 
     { 
      return redirect(route('login')); 
     } 

     return $next($request); 
    } 
} 

Kernel.php(附錄\ HTTP \ Kernel.php):

protected $routeMiddleware = [ 
     ... 
     'adminCheck' => \App\Http\Middleware\AdminCheck::class, 
    ]; 

路線(應用\路由\ web.php):

Route::get('dashboard', function(){ 
    // 
})->middleware('auth', 'adminCheck'); 

dashboard.php:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

class dashboard extends Controller 
{ 
    public function index() 
    { 
     return view('dashboard'); 
    } 
} 

當我進入http://localhost:8000/dashboard存在顯示錯誤頁面,上面寫着:

Sorry, the page you are looking for could not be found. 

我因無法修復它顯得如此愚蠢。你能幫我找出我的問題在哪裏嗎?提前謝謝你。

+1

我改變**/**儀表板到** ** dashbpard現在的錯誤chenged是:'在UrlGenerator.php線314 InvalidArgumentException:路線[儀表盤]沒有定義.' !!! – Tower

回答

2

也許它來自你的控制器名稱。 Laravel遵循自動加載類PSR-4標準,see doc here,你的類名應該由一個大寫字母開始:

\ NamespaceName {\ SubNamespaceNames *} \類名

嘗試重命名你的dashboard.php到Dashboard.php中,重新制作一個php composer dumpautoload以查看?這條路線應後工作:

Route::get('dashboard', '[email protected]')->middleware('auth', 'adminCheck');

0

您的resources/view文件夾中是否有稱爲dashboard.blade.php的視圖?

當您沒有刀片模板時會發生此錯誤。或者有時,當你命名它時,你可能犯了一個錯誤。所以它可能有dashbord.blade.php不是dashboard.blade.php

+1

不,先生。我檢查了它,它是正確的! – Tower

+1

您是否爲您的項目「查看清除」和「路由清除」?它可能會幫助你。 – Sachith

1

通常當你有這樣的問題時,你還沒有在路由中定義你的路徑URL。請添加此路線:如果你發現錯誤,根本不知道發生了什麼事情,你可以去laravel.log文件有關錯誤的更多詳細

Route::resource('dashboard','YourController'); 

和一些小技巧,你可以在這裏找到:storage/logs/laravel.log

1

讓你的路線,使用方法爲dashboardindex /儀表板USL

Route::group(['middleware' => ['auth', 'adminCheck']], function() { 
    Route::get('dashboard', dashboard::class . '@index'); 
}); 
相關問題