2014-01-26 38 views
0

當存在成員資格系統時,我們只會爲用戶顯示一些內容。例如,註冊和登錄按鈕適用於尚未登錄的非成員或用戶。 Sametime,註銷按鈕僅適用於已登錄的用戶。避免在模板中使用過多的if/else語句

我使用之前創建的mvc系統。您創建什麼類型的方法或類來避免使用if/else語句?

+0

你能舉一個你現在擁有的例子嗎?一般情況下'if' /'else'沒有任何問題。 – Brad

回答

1

如果您使用太多if/else語句,您可能沒有使用模板繼承。

基本上你有一個主模板:

master.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
    @section('main') 
    @endsection() 
</body> 
</html> 

其他模板繼承這個模板

user.html:

@extends('master') 
@section('main') 
<button>Connect</button> 
@endsection 

visitor.html

@extends('master') 
@section('main') 
<button>Subscribe</button> 
@endsection 

大多數模板系統提供了一種模板繼承,像Twig templating language

這個建議也適用於你的代碼的其他部分,例如,如果你使用太多if或switch case,你可能會創建繼承你當前類的類。

用於代碼樣本語法由Laravel's Blade templating language

0

啓發您可以維護一個會話,並檢查它每一次,甚至刷新頁面後。

即在登錄或註冊後創建一個數組並將其存儲在會話中,然後檢查該會話是否爲空。如果該會話不爲空,則表示用戶已登錄並在用戶單擊註銷按鈕後清除該會話。

有了這個邏輯,你可以處理所有的操作。