【问题标题】:Laravel 5.2 conditional extends template in BladeLaravel 5.2 有条件扩展 Blade 中的模板
【发布时间】:2016-06-17 23:22:25
【问题描述】:

我想根据条件扩展模板。我知道我可以在刀片中使用@if @else 语句。我正在做同样的事情,但刀片扩展了两个模板。我不知道为什么。

@if(isset(Auth::user()->id))
    @extends('layouts.adminlayout')
@else
   @extends('layouts.default')
@endif

@section('content')
    i am the home page
    {{ isset(Auth::user()->id) }}
@stop

您可以看到我正在检查用户是否登录,然后扩展模板布局。但它是从两种布局延伸出来的。

请帮帮我。

【问题讨论】:

    标签: php laravel-5.2 laravel-blade


    【解决方案1】:

    试试这段代码,父代很重要

    @extends(Auth::user()->rol_id == 1 ? 'layouts.admin' : ((Auth::user()->rol_id == 2) ? 'layouts.client' : 'layouts.client'))
    

    【讨论】:

      【解决方案2】:

      扩展刀片视图中的第一行必须是 @extends 指令。 尝试为此使用三元运算符。

      @extends(isset(Auth::user()->id) ? 'layouts.adminlayout' : 'layouts.default');
      

      更新基于角色的布局。更多条件参考this问题。

      @extends((!isset(Auth::user()->id))? 'layouts.default': ((Auth::user()->role == 'admin') ? 'layouts.adminlayout' : 'layouts.moderatorlayout'));
      

      【讨论】:

      • 这很酷,我有多个条件,例如基于角色的身份验证用户以及为什么我的条件不起作用。
      • 您可以在这种情况下检查用户角色。
      • 如果用户经过身份验证,您能否为管理员和经理写下该条件,否则默认,因为我不擅长三元运算符。
      • 让我试试。如果不可能,我会回复你。现在我接受你的问题。但是我的一个问题仍然存在,为什么我的条件不起作用?
      • 在这种情况下,使用三元语句时是否可以传入要包含在@extend 调用中的变量?
      猜你喜欢
      • 2013-09-02
      • 2016-06-18
      • 1970-01-01
      • 2013-07-01
      • 2016-07-05
      • 2021-10-08
      • 2017-10-13
      • 2015-03-01
      • 2014-11-19
      相关资源
      最近更新 更多