我在embedRelation的选项中看到你可以传递一个表单类,所以我假设我可以简单地设置一个新表单并根据需要修改它然后将其作为类传递给embedRelation并且我的表单看起来像我一样欲望。不是这样的,我怎么做呢?
示例来自magicForm.class.php:
function configure()
{
$magicForm = new magicForm();
unset($magicForm['fieldName']);
$this->embedRelation('Magic',$magicForm);
}
我希望这会嵌入一个漂亮的形式MINUS'fieldName'字段,但它没有,整个表单嵌入没有变化。
那么如何在嵌入之前自定义表单,而不是使用上面示例完美适用的embedForm?
答案 0 :(得分:1)
embedRelation
使用Form类的名称而不是表单本身的实例,然后它基本上完成了创建类的实例并设置它的medo内部的所有内容。如果要在此之后修改表单,则需要通过访问各种模式对象来执行此操作,如:
function configure()
{
$this->embedRelation('Magic','magicForm');
unset($this['Magic']['fieldName']);
$this->getEmbeddedForm('Magic')
->widgetSchema['anotherField']
->setOption('class', 'some_class');
//etc..
}
为什么它的价值我永远不会使用嵌入式关系...我只是按照你提到的embedForm
来做。