的某些表單域的方式我正在使用此方式獲取ZEND_FORM
中用戶的「角色」。隱藏用戶xyz
$identity = Zend_Auth::getInstance()->getIdentity();
對於每一個表單字段我添加表單域像前檢查的作用:
if($identity->role=='admin') $form->addElement...
有沒有一種更聰明的辦法做到這一點?比如addElement的選項?
問候 Frgtv10
的某些表單域的方式我正在使用此方式獲取ZEND_FORM
中用戶的「角色」。隱藏用戶xyz
$identity = Zend_Auth::getInstance()->getIdentity();
對於每一個表單字段我添加表單域像前檢查的作用:
if($identity->role=='admin') $form->addElement...
有沒有一種更聰明的辦法做到這一點?比如addElement的選項?
問候 Frgtv10
你這樣做可能會導致混亂的方式。它有可能你可以在這裏使用2種形式。其中一個主要內容包含所有人共有的內容,以及從第一個內容繼承而來併爲管理員添加功能的內容。這將更容易維護,因爲您只是根據角色實例化正確的表單,因此您可以在表單中的任何地方檢查角色,而不是查找任何東西。
所以在你的控制器您可以:
if($identity->role=='admin'){
$form = new Form_WhateverAdmin();
} else {
$form = new Form_WhateverNotAdmin();
}
哪裏
Form_WhateverNotAdmin extends Zend_Form
和
Form_WhateverAdmin extends Form_WhateverNotAdmin
您也可以刪除現有elemets:
if($identity->role != 'admin') $form->removeElement('name');