Laravel: расширение различных макетов внутри условия if-else 3 роли - PullRequest
0 голосов
/ 06 января 2020

У меня 3 роли Пользователь-сотрудник и Администратор

У меня есть этот код.

    @if(Auth::User()->user_role == 1)
        {{$type = "layouts.admin_layout"}}
    @elseif(Auth::User()->user_role == 2)
        {{$type = "layouts.employee_layout"}}
    @elseif(Auth::User()->user_role == 3)
        {{$type = "layouts.user_layout"}}
    @endif

Это дает мне 3 макета.

Ответы [ 3 ]

1 голос
/ 06 января 2020

Попробуйте это

@php

    if(Auth::User()->user_role == 1)
        $type = "layouts.admin_layout";
    elseif(Auth::User()->user_role == 2)
        $type = "layouts.employee_layout";
    elseif(Auth::User()->user_role == 3)
        $type = "layouts.user_layout";
@endphp

1 голос
/ 06 января 2020

вы не можете объявить переменную, используя {{ }}. это используется для вывода / печати переменной. Вместо {{ }} попробуйте использовать @php #code here @endphp

@if(Auth::User()->user_role == 1)
   @php $type = "layouts.admin_layout" @endphp
@elseif(Auth::User()->user_role == 2)
    @php $type = "layouts.employee_layout" @endphp
@elseif(Auth::User()->user_role == 3)
    @php $type = "layouts.user_layout" @endphp
@endif
0 голосов
/ 06 января 2020

Вы также можете попробовать его в переключателе:

@switch(Auth::user()->user_role)
    @case(1)
        @php $type = "layouts.admin_layout" @endphp
    @break
    @case(2)
        @php $type = "layouts.employee_layout" @endphp
    @break
    @case(3)
        @php $type = "layouts.user_layout" @endphp
@endswitch

Переключатель имеет тенденцию быть немного более читабельным при использовании нескольких операторов if / elseif / else. Кроме того, вы звоните Auth:user()->user_role только один раз вместо 3 раз.

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