是否可以对表单数据对象使用一种工厂方法/类,而不是使用data_class
选项。我需要这个用于嵌入式表单,我不再在我的客户端代码中控制数据对象。由于无法使用PHP new
运算符创建的简单空对象,因此我需要某种工厂创建机制。
像这样(伪):
// ... some form type
$resolver->setDefaults(array(
'data_class' => '\MyModel', // this the simple way, which is not enough for me.
'data_factory' => \MyFactory::create('\MyModel') // or something like that.
));
我希望我的问题很清楚,有可能这样吗?
谢谢!
答案 0 :(得分:1)
我所寻找的是这个(与我在问题中描述的想法相同): http://symfony.com/doc/current/cookbook/form/use_empty_data.html
所以,上面的代码看起来像这样:
// ... some form type
$resolver->setDefaults(array(
'data_class' => '\MyModel',
'empty_data' => \MyFactory::create('\MyModel'), // now it will create the object through my factory
));