2017-01-01 46 views
-1

我需要一些關於laravel 5.3中間件的幫助。我的問題如下:laravel 5.3管理中間件使用?

我做了一個應用程序,它有2個前端區域是網絡和管理員。

<?php 
namespace App\Http\Middleware; 
use Closure; 
use Auth; 
class AdminMiddleware 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next, $guard = null) 
    { 
     if (Auth::guard($guard)->check()) { 
      return redirect('/'); 
     } 
     return redirect('admin/'); 
    } 
} 

,我有2個控制在應用程序\ HTTP \控制器\ Admin文件夾

那些LoginController中和的HomeController

,如果我進入本地主機:8000 /管理/我走到LoginController並寫入hello。這是好的,但如果我去localhost:8000/admin/home我看到其他字符串寫「主頁」,但我想重定向到用戶管理員/登錄如果用戶不認證,但我不能這樣做。

我Kernel.php

'admin' => [ 
      \App\Http\Middleware\EncryptCookies::class, 
      \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
      \Illuminate\Session\Middleware\StartSession::class, 
      \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
      \App\Http\Middleware\VerifyCsrfToken::class, 
      \Illuminate\Routing\Middleware\SubstituteBindings::class, 
     ], 

添加middlewareGroup並補充routeMiddleware像

'admin' => \App\Http\Middleware\AdminMiddleware::class, 

我想告訴它,我不想讓角色系統

我要打2模塊

  1. 用戶模塊(它是在web.php - >在路線文件夾)
  2. 管理模塊(它是在admin.php的 - >在路線文件夾)

用戶和管理員不同。

用戶可以是管理員嗎? NO ...管理員從用戶的不同......(其他人)

回答

0

,你必須在文件中添加此功能的應用軟件\供應商\ RouteServiceProvider.php

public function map() 
{ 
    $this->mapApiRoutes(); 

    $this->mapWebRoutes(); 

    $this->mapAdminRoutes(); 
    // 
} 

... 

protected function mapAdminRoutes() 
{ 
    Route::group([ 
     'middleware' => 'admin', 
     'namespace' => $this->namespace, 
    ], function ($router) { 
     require base_path('routes/admin.php'); 
    }); 
}