Несколько макетов, расширяющих следующие условия - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь расширить макет для следующего типа пользователя.Например, если пользователь является «администратором», он получит другой макет.У меня есть три типа пользователей, и я пробовал это, на мой взгляд, для двух типов, но это не работает.

@if($user->type === 'professeur')
    @extends('layouts.dashprof')
@elseif($user->type === 'admin')
    @extends('layouts.dash')
@endif

Я получаю переменную $user с моим видом.

public function profile()
{
    return view('profile', array('user' => Auth::user()));
}

Ответы [ 3 ]

1 голос
/ 06 мая 2019

Попробуйте, у меня это работает

@extends(Auth::user()->type === 'professeur' ? 'layouts.dashprof' : 'layouts.dash' )

Я не знаю, почему это работает, но не блок @if.Возможно, из-за того, что он используется за пределами @extends, в этом может помочь какой-то эксперт.

Вы также можете выполнить несколько условий, вложив их:

@extends(Auth::user()->type === 'professeur' ? 'layouts.dashprof' : ( Auth::user()->type === 'student'? 'layouts.student ': 'layouts.dash' ) );
0 голосов
/ 06 мая 2019

Попробуйте

@if(Auth::user()->type === 'professeur')
    @extends('layouts.dashprof')
@elseif(Auth::user()->type === 'admin')
    @extends('layouts.dash')
@endif

и вам не нужно возвращать пользовательский объект в ваше представление.

0 голосов
/ 06 мая 2019
@if($user->type == "professeur")
    @extends('layouts.dashprof')
@elseif($user->type == "admin")
    @extends('layouts.dash')
@endif

Убедитесь, что вы используете оператор == для сравнения значений. Один = пытается присвоить значение.

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