【发布时间】:2015-10-30 14:37:16
【问题描述】:
有点棘手:
我有一个实体Street 的表单集合。
集合项目是houses。我需要通过room订购收藏中的房子
我曾尝试添加@ORM\OrderBy({"room" = "ASC"}),但显然没有指定房间实体内的权重字段,集合就无法知道。
我正在尝试做的事情是否可能?
Street.php
/**
* @var ArrayCollection
*
* @ORM\OneToMany(targetEntity="houses", mappedBy="street")
*/
protected $houses;
Houses.php
/**
* @var Room
*
* @ORM\ManyToOne(targetEntity="Room", inversedBy="house")
* @ORM\JoinColumn(name="room_id", referencedColumnName="id")
*/
private $room;
/**
* @var Street
*
* @ORM\ManyToOne(targetEntity="Street", inversedBy="houses")
* @ORM\JoinColumn(name="street_id", referencedColumnName="id")
*/
private $street;
HouseCollectionType.php
$builder
->add('houses', 'collection', array(
'type' => new HouseFieldsType(),
'allow_delete' => false,
))
;
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Bundle/Street'
));
}
【问题讨论】:
-
也许this post 会有所帮助。
-
感谢@chapay,您提供的帖子中的解决方案非常有帮助,我的问题是我需要它与表单集合一起使用,以便它可以自动执行 setter 和 getter。
标签: symfony symfony-forms