我正在使用的系统基于用户和慈善帐户,每个人都有一个用户帐户,但慈善机构有一个用户帐户和一个慈善记录与用户帐户相关联,用户id包含一些额外的字段。
我需要一个注册表单,允许人们注册为个人(只有一个用户帐户)或慈善机构(用户帐户+慈善机构记录),所以我将慈善机构表单嵌入到我的用户注册表单中,并在顶部添加了一个单选按钮问题,以找出用户注册的帐户类型。
我需要的是,当用户表示他们想要一个慈善帐户的慈善领域成为必需的,当他们表示他们想要成为一个人,他们不是(我隐藏他们与Javascript时,他们选择这个)。
我试过在用户选择慈善的时候运行它,但它似乎不起作用:
$this->register_form->getEmbeddedForm('charity')->getValidator("name")->setOption("required", true)有没有人能告诉我正确的方法是什么?
发布于 2011-02-11 16:35:20
首先,最好将此逻辑放在form类中,而不是放在操作中。其次,当嵌入表单时,它会将validatorschema复制到父表单,这就是为什么更改嵌入表单本身的选项不会产生任何影响。
另一种实现你想要做的事情的方法可能是:
class myForm extends BaseForm {
public function configure() {
// set up widgets, validators etc
}
protected function doBind($values) {
is (!empty($values['charity']['charityCheckbox']) {
$this->validatorSchema['charity']['name']->setOption('required', true);
}
parent::doBind($values);
}
}https://stackoverflow.com/questions/4935659
复制相似问题