Сеанс запроса Laravel get return Boolean not value - PullRequest
0 голосов
/ 26 июня 2019

Я создал промежуточное программное обеспечение, которое принудительно указывало путь маршрута, содержащийся в локальном значении, и оно прекрасно работает, но когда я попытался прочитать значение сеанса локали, он возвращает true как Boolean!не значение сессии, как en

    <?php
namespace App\Http\Middleware;
use Closure;

class Local
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */

    public function handle($request, Closure $next)
    {    
        if($request->method() == 'GET'){
            //get local from param
            $locale = $request->segment(1);

            //if not exist i get it from app and redirect to /local
            if(!$locale || !in_array($locale, config('app.locales')))
            {
                dd($request->session()->get('locale'));
                $locale = $request->session()->get('locale') || app()->getLocale();
                $request->session()->put('locale',$locale);

                return redirect('/'.$locale.$request->getRequestUri());
            }
            //else if exist I set the local and set the session

           else
            {
                $request->session()->put('locale',$locale);
            }

        }
        return $next($request);
    }
}

1 Ответ

2 голосов
/ 26 июня 2019

Измените свой код, чтобы использовать оператор объединения нулей (??).

$locale = $request->session()->get('locale') ?? app()->getLocale();

Сейчас он присваивает условие вашей переменной $ locale .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...