这是我的路线:
Route::group(['middleware' => ['web']], function () {
Route::get('/xx', 'xx\yy@zz');
这是我在Kernel.php中的修改:
protected $middlewareGroups = [
'web' => [
\Keevitaja\Linguist\LocalizeUrls::class,
LocalizeUrls.php:
public function handle($request, Closure $next)
{
if ($this->linguist->hasDefaultSlug() && $this->linguist->isDefaultDenied()) {
abort(404);
}
if (Sentinel::check())
{
dd("logged in");
}
dd("NOT logged in");
我正在使用Sentinel和Linguist进行身份验证和本地化。 我想得到系统语言'从用户模型:检查用户是否已登录,如果他是,我想从数据库中获取他的首选语言,然后将其传递给语言学家:
$this->linguist->localize('fr');
不幸的是,Sentinel:check()
总是在这个中间件中返回FALSE。在我自己的中间件中,它运行良好。
当然,我正在使用正确的Sentinel Facade,因为$sentinel = Sentinel::findById(1);
会返回有效的结果。
答案 0 :(得分:1)
问题是由于$middlewareGroups
位于第一位置的Kernel.php \Keevitaja\Linguist\LocalizeUrls::class
中的顺序造成的。