2016-03-04 64 views
4

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

@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 

因为你可以看到我正在检查用户是否登录,然后扩展模板布局。但它是从两个布局延伸而来。

请帮帮我。

回答

7

扩展刀片视图中的第一行必须是@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')); 
+0

这很酷,大约是我有一个像基于角色和为什么我的条件不工作认证的用户多重条件。 – Mandy

+0

您可以检查用户在该情况下的角色。 –

+0

如果用户认证,请你为管理员和经理编写条件,否则默认为我不擅长三元运算符。 – Mandy