2016-03-04 62 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