比方说,我有普通*Type
类:如何在Symfony 2的Form(Type)类中获取实体库的实例?
class LocationType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add(...)
...
}
}
和领域之一是choice
类型。需要用作选择项的值应该从数据库中检索(来自某个特定的实体存储库)。
所以问题是:如何获得LocationType
类中的存储库?通过构造函数传递它是获得它的唯一方法吗?
UPD:
我知道entity
类型,但不幸的是我不能使用它,因为我的财产是不是也不能被定义为one-to-one
关系,由于该学说不支持非常复杂关系的条件(但?)。见How to specify several join conditions for 1:1 relationship in Doctrine 2了解更多详细信息
我不能这样做,因为我的'foo'属性没有被定义为任何关系('一对一或任何其他),因为关系是以非常困难的方式定义的,原则目前不支持。 http://stackoverflow.com/questions/9123264/how-to-specify-several-join-conditions-for-11-relationship-in-doctrine-2 - 这里是解释案例的问题 – zerkms 2012-02-06 21:23:22
对不起,我没有'在第一个问题修订版中指定了这些重要细节,无论如何都是+1。任何其他想法? – zerkms 2012-02-06 21:27:48
嗨。没问题。无论如何,我可能会太快地阅读你的问题!我建议在你的控制器中将'$ this-> buildForm($ type,$ entity,array('repository'=> $ er))'作为一个选项传递给你的窗体,但是我想给你的问题你正在寻求避免这一点。 – 2012-02-06 21:42:39