在Twig裡面利用表示式做許可權控制

2021-10-07 17:07:49 字數 1307 閱讀 8457

1 在設計表中乙個使用者對應著多個角色,有時我們需要在頁面中根據使用者的角色,控制對應的頁面展示

例如下表所示

我們在edusoho中並不需要去控制器裡獲取到當前使用者,然後檢視當前使用者的角色,然後傳值給模板操作,這裡有個好用的模板函式

在twig中有表示式 

} set 設定變數 data是模板函式,可以直接在模板裡獲取到當前使用者資訊

下面的 has_permission

()函式判斷當前使用者是都有管理員許可權,剩下的表示式,直接就像寫邏輯表示式一樣

and 並且

not in 值不在陣列裡

附錄上has_permission的實現方法

public

function

haspermission

($code

)//判斷是否具有許可權的方法

public

function

haspermission

($code

)$tree

= permissionbuilder:

:instance()

->

getoriginpermissiontree

(true);

$codetree

=$tree

->

find

(function

($tree

)use

($code))

;if(empty

($codetree))

$disabletree

=$codetree

->

findtoparent

(function

($parent))

;if(is_null

($disabletree))

$parent

=$disabletree

->

getparent()

;if(is_null

($parent))

if(empty

($parent

->

data

['parent'])

)else

}

利用棧實現中綴表示式轉字尾表示式

中綴表示法 或中綴記法 是乙個通用的算術或邏輯公式表示方法,操作符是以中綴形式處於運算元的中間 例 3 4 與字首表示式 例 3 4 或字尾表示式 例 3 4 相比,中綴表示式不容易被電腦解析,但仍被許多程式語言使用,因為它符合人們的普遍用法。逆波蘭表示法 reverse polish notati...

利用棧將中綴表示式轉為字尾表示式

字串的初始化方法 2.對陣列中字元逐個賦值 3 利用strcpy stl中棧stack的使用 include include includeusing namespace std bool mittopost char exp,char po p,int len int main int len s...

access裡面的表示式運用 Access表示式

access 上機難點型別題彙總 基本操作 表函式型別題集合 書上頁輸入掩碼背下來 用函式獲 取 dateserial year date 1,5,1 dateserial year date 1,1,1 本年度九月一日 規定 本年度年號必須由函式獲取 dateserial year date 9,...