1
我試圖使用不同中間件的相同控制器的一些方法,例如讓管理員和用戶使用方法索引並在同一個控制器中創建。所以我做了一名管理員後衛作爲用戶後衛。多個控制器中間件在Laravel 5.2中使用相同的方法
這是我AdminMidleware
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class AdminMidleware
{
public function handle($request, Closure $next)
{
if (Auth::guard('admin')->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('/');
}
}
return $next($request);
}
}
我UserMiddleware
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class UserMiddleware
{
public function handle($request, Closure $next)
{
if (Auth::guard('user')->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('/');
}
}
return $next($request);
}
}
他們都是在kernel.php在$ routeMiddleware
'admin' => \App\Http\Middleware\AdminMidleware::class,
'user' => \App\Http\Middleware\UserMiddleware::class,
如果我用這個,我可以作出這樣的只有管理員可以訪問這些方法,並且它可以工作,您必須將其作爲管理員才能使用我thods。
public function __construct(){
$this->middleware('admin', ['only' => [
'index',
'create',
]]);
}
,這是假設,使用戶和管理員能夠使用索引,並創建在同一個控制器發送的第一parametter與管理員和用戶中間件陣列的方法,
public function __construct(){
$this->middleware(['admin', 'user'], ['only' => [
'index',
'create',
]]);
}
但是,它不工作,它實際上使任何人都無法使用這些方法,你能幫我做好這個工作嗎?我究竟做錯了什麼?
OMG它的工作!謝謝:D – Saucyloco