2016-08-30 4 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, 
    ]; 

маршрута (App \ маршруты \ 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 ** и теперь ошибка поменявшее быть: 'InvalidArgumentException в UrlGenerator.php линии 314: Route [приборную панель ] не определено.' !!! – 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

У вас есть вид под названием dashboard.blade.php в вашей папке resources/view?

Эта ошибка возникает, когда у вас нет шаблона клинка. Или иногда, возможно, вы ошиблись, когда назовете это. Таким образом, это может быть dashbord.blade.php не dashboard.blade.php

+1

Нет, сэр. Я проверил его, и это правильно! – Tower

+1

Вы действительно «поняли» и «поняли маршрут» для своего проекта? Это может вам помочь. – Sachith

1

Обычно, когда у вас возникают проблемы, вы не определяете свой URL-адрес пути в пути. добавьте этот маршрут:

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

и некоторые советы, если вы нашли ошибку, и понятия не имею, что происходит, вы не можете пойти в laravel.log файл для более подробной информации о вашей ошибке, вы можете найти его здесь: storage/logs/laravel.log

1

Сделайте свой маршрут, чтобы использовать index метод dashboard класса для/приборной панели USL

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