Symfony2构成data_class工厂,用于创建数据对象

时间:2015-05-05 00:29:43

标签: php forms symfony factory

是否可以对表单数据对象使用一种工厂方法/类,而不是使用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.
));

我希望我的问题很清楚,有可能这样吗?

谢谢!

1 个答案:

答案 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
));