Laravel извлекает и связывает значения с каждым представлением автоматически - PullRequest
0 голосов
/ 21 июня 2019

У меня есть приложение бэкэнда / администратора Laravel, которое использует значение куки, чтобы установить состояние боковой панели, которая должна быть открыта, свернута или перемещена.

Я пытаюсь установить значение из файлов cookie на основена токене вошедшего в систему пользователя.Я попытался написать код $this->userToken = Auth::user()->token; в __construct() контроллера, но он не работает.Я получаю эту ошибку Trying to get property of non-object.

Однако, если я напишу код в любом методе контроллера, он будет работать без ошибок.Я погуглил эту проблему и нашел несколько решений, но ни одно из них не смогло ее исправить.

Я также пытался просмотреть композитор.

Контроллер:

/**
 * Private variables
 */
private $controller  = "";
private $action      = "";
private $arrayCookie = "";

public function __construct(Route $route)
{
    /** 
     * Middlewares
     */
    $this->middleware('auth');
    $this->middleware('cookies');
    $this->middleware(function ($request, $next) {
        $userToken         = Auth::user()->token;
        $this->arrayCookie = $request->$userToken;

        return $next($request);
    });

    /** 
     * Extracting current controller & action from the namespace
     */
    list($controller, $method) = @explode("@", $route->getActionName());

    /** 
     * Assigning values to private variables
     */
    $this->controller = preg_replace('/.*\\\/', '', $controller);
    $this->action     = preg_replace('/.*\\\/', '', $method);
}

public function <method>()
{
    ...
    # rendering view
    return view(self::DIRECTORY . "create", [
        ...

        **'arrayCookie' => $this->arrayCookie,**

        ...
    ]);
    ...
}

...

Просмотр:

...

<div id="main"<?php
    # fetching cookie -> sidebar-floating
    if(!empty($arrayCookie['sidebar-floating']) && $arrayCookie['sidebar-floating'] == true)
    {
        echo ' class="sidebar-floating"';
    }
?>>

...
...