【问题标题】:Multiple layouts extending following conditions扩展以下条件的多个布局
【发布时间】:2019-09-24 05:45:07
【问题描述】:

我正在尝试为以下用户类型扩展布局。 例如,如果用户是“管理员”,他将获得不同的布局。我有三种类型的用户,我在我的视图中尝试了这两种类型,但它不起作用。

@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()));
}

【问题讨论】:

    标签: laravel laravel-blade


    【解决方案1】:

    试试这个,它对我有用

    @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' ) );
    

    【讨论】:

    • 请问如果我有 3 种类型的用户,我应该改变什么?
    【解决方案2】:
    @if($user->type == "professeur")
        @extends('layouts.dashprof')
    @elseif($user->type == "admin")
        @extends('layouts.dash')
    @endif
    

    确保使用== 运算符来比较值。单个= 正在尝试分配一个值。

    【讨论】:

    • 您好,谢谢您的回答,我在它不起作用之前尝试过这个
    • 在 if 阻止之前,请尝试添加 {{ dump($user->type) }} 以查看该属性是否正在输出您所期望的。
    • 是的,它给了我我想要的数据,但它就像条件不起作用我在页面中有一个重复我可以使用控制器避免所有这些问题,但我只是想以防万一我们可以做点什么这样可以避免多次查看
    • stackoverflow.com/a/19691608/1342183 可能会更好地了解这个问题
    • FunkyMonk91 谢谢我关注@Aditya Thakur 解决方案,它正在工作
    【解决方案3】:

    试试

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

    并且您不需要将用户对象返回到您的视图。

    【讨论】:

      猜你喜欢
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多