2014-12-22 27 views
3

我的問題是,我的頁面是Laravel刀片模板。 如果用戶登錄,我的頁面應該從主佈局擴展。 如果用戶沒有登錄,我的頁面應該從另一個主佈局擴展。if - else在laravel framework刀片模板中不起作用

但是我如果 - else語句不工作

<?php 
if (Auth::check()){?> 
@extends('layouts.outside'); 
<?php } else{ ?> 
    @extends('layouts.admin'); 
<?php }?> 

我也試過葉片的if-else版本如下:

@if (Auth::check()) 
@extends('layouts.outside') 
@else 
@extends('layouts.admin') 
@endif 

它沒有工作過。每當說明真或假,if和else語句中的塊都會一起工作。因爲沒有其他的。 我的意思是每次它調用layouts.outside一次,只是它的底部,同一頁面再次與layouts.outside一起加載,無論用戶是否登錄都無關緊要。

感謝

+1

你剛纔忘了'{'在結束你的'其他'聲明!在'else'聲明的開始處,您必須刪除 – Rizier123

+1

'Auth :: check()'不應該在視圖內。通常,像這樣的東西出現在'routes.php','filters.php'或你創建的控制器中。只是一些思考的食物。 –

回答

1
<?php 
if (Auth::check()){ 
Blade::extends('layouts.outside'); 
<?php } else 
extends('layouts.admin'); 
}?> 

你缺少一個{在其他 也是爲什麼在PHP標籤中取出

 <?php 
     if (Auth::check()){ 
     Blade::extends('layouts.outside'); 
     } else{ 
     extends('layouts.admin'); 
     } 
    ?> 
+0

他也有一個開標籤! – Rizier123

+0

是的,我看到它只是通過點擊後發佈。 – AddcitedToLearn

+0

我真的很抱歉:(現在我很沮喪,我無法正確地提出問題,但我現在糾正了這個問題,感謝您的快速回復,下次我會注意標籤@ Rizier123 :) –

8
@extends(Auth::user() ? 'layouts.outside' : 'layouts.admin');