0

这是我的路线:

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 进行身份验证和本地化。我想从用户模型中获取“system_language”:检查用户是否登录,如果他登录了,我想从数据库中获取他的首选语言,然后将其传递给语言学家:

$this->linguist->localize('fr');

不幸的是,Sentinel:check()在这个中间件中总是返回 FALSE。在我自己的中间件中,它运行良好。

可以肯定的是,我使用了正确的 Sentinel 外观,因为$sentinel = Sentinel::findById(1);它返回了一个有效的结果。

4

1 回答 1

1

问题是由于 Kernel.php$middlewareGroups\Keevitaja\Linguist\LocalizeUrls::class位于第一位的顺序引起的。

于 2018-01-01T10:00:21.603 回答