简体   繁体   English

Laravel 5.2 条件扩展 Blade 中的模板

[英]Laravel 5.2 conditional extends template in Blade

I want to extend template based on condition.我想根据条件扩展模板。 I know i can use @if @else statement in blade.我知道我可以在刀片中使用@if @else语句。 I am doing the same thing, but blade extending both the template.我正在做同样的事情,但是刀片同时扩展了模板。 I don't know why.我不知道为什么。

@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

As, you can see i am checking whether or not user login-ed and then extend the template layout.因为,您可以看到我正在检查用户是否登录,然后扩展模板布局。 But it is extending from both the layout.但它是从这两个布局中延伸出来的。

Please help me.请帮我。

The first line in your extended blade view must be the @extends directive.扩展刀片视图中的第一行必须是@extends指令。 Try using a ternary operator for this.尝试为此使用三元运算符。

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

UPDATE for role based layouts.更新基于角色的布局。 Refer to this question for more conditions.有关更多条件,请参阅问题。

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

试试这个代码,父母很重要

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM