【发布时间】:2015-09-05 18:54:06
【问题描述】:
我是 Laravel 5 中间件的新手——我最近刚刚在我的应用程序中添加了一个新的 user type == Dev。我需要为该用户类型设置一定的路线限制 - 就他们可以/不能访问的内容而言。
所以我创造
DevMiddleware.php
<?php
namespace App\Http\Middleware;
use App\Article;
use Closure, View ;
use Illuminate\Contracts\Auth\Guard;
class DevMiddleware
{
/**
* The Guard implementation.
*
* @var Guard
*/
protected $auth;
/**
* Create a new filter instance.
*
* @param Guard $auth
* @return void
*/
public function __construct(Guard $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($this->auth->getUser()->type !== "Dev") {
return View::make('errors.404');
}
return $next($request);
}
}
我已经注册了
内核.php
'dev' => 'App\Http\Middleware\DevMiddleware',
我用在我的
Routes.php
$router->group(['middleware' => ['auth', 'admin', 'dev' ] ], function() {
//Any routes goes in here
});
当我去那里的那些路线时 - 不断收到 404 错误。
我希望能够去那些路线。
我在这里做错了什么?我该如何解决?
【问题讨论】:
-
代替
getUser()试试user()。 API 状态getUser()返回当前缓存的用户,我不完全确定这究竟意味着什么。user()返回当前登录的用户,这可能是您真正想要的。 -
现在试试。如果它有效,我会回复你。
-
不工作!我也尝试
Auth::user()->type == "Dev"也不起作用。 -
尝试
mail自己或单步执行代码以查看Auth::user()->type返回的内容。也许会有所帮助。
标签: php laravel laravel-5 laravel-routing middleware