目前我正在使用这种方式来获取用户在ZEND_FORM
.
$identity = Zend_Auth::getInstance()->getIdentity();
对于每个表单字段,我都会在添加表单字段之前检查角色,例如:
if($identity->role=='admin') $form->addElement...
有没有更聪明的方法来做到这一点?比如 addElement 的一个选项?
最好的问候 Frgtv10
目前我正在使用这种方式来获取用户在ZEND_FORM
.
$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
您还可以删除现有的元素:
if($identity->role != 'admin') $form->removeElement('name');