make $ user is undefined Сделать переменную необязательной в шаблоне блейда. Замените {{$ user}} на {{$ user ?? ''}} - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть одностраничный sidebar.blade. php, и я должен импортировать эту страницу на другой странице в качестве боковой панели. У меня есть переменная, которая поступает из контроллера, когда я импортирую боковую панель на другую страницу, используя @extends, которые она показывает. me error undefined переменная с решением

"make $ user is undefined Сделать переменную необязательной в шаблоне блейда. Замените {{$ user}} на {{$ user ?? ''}}"

как я могу решить этот

код боковой панели здесь

@if($user->role  =="handlers" )  
            <li>
                <a href="{{ url('/kontaktuppgifter') }}"><i class="fa fa-user fa-fw"></i> kontaktuppgifter{{-- <span class="fa arrow"></span> --}}</a>

            </li>
            @endif
            <li>

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Если $ user является текущим пользователем, то для этого вы должны использовать Auth:

@if(auth()->user()->role  =="handlers" )  
            <li>
                <a href="{{ url('/kontaktuppgifter') }}"><i class="fa fa-user fa-fw"></i> kontaktuppgifter{{-- <span class="fa arrow"></span> --}}</a>

            </li>
@endif
0 голосов
/ 12 апреля 2020

Поскольку вы, вероятно, не передаете переменную $user в каждое из ваших представлений, но расширяете представление боковой панели, попробуйте вместо этого использовать помощник Laravel auth(), чтобы получить пользовательскую модель. Вы можете сделать что-то вроде этого:

@if(auth()->user()->role  == "handlers")  
    <li>
        <a href="{{ url('/kontaktuppgifter') }}">
            <i class="fa fa-user fa-fw"></i>
            kontaktuppgifter
        </a>
    </li>
@endif

Вы также можете поделиться переменной $ user со всеми вашими представлениями, так что вам не придется запрашивать базу данных каждый раз, когда вы хотите получить пользовательские данные.

Вы можете сделать это в функции класса BaseController __construct() функция:

//App\Http\Controller.php

public function __construct()
{
    $user = auth()->user();

    view()->share('user', $user);
}

Затем вы можете использовать переменную пользователя в своем представлении, как вы делаете это прямо сейчас:

@if($user->role  == "handlers")  
    <li>
        <a href="{{ url('/kontaktuppgifter') }}">
            <i class="fa fa-user fa-fw"></i>
            kontaktuppgifter
        </a>
    </li>
@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...