0
我有很多医院和供应商之间的一对多的关系,但是当我尝试到医院添加到我的VendorType的形式呈现,没有医院作为<选项>的我的Symfony2表格多对多是空
这是我的代码相关的片段。
VendorBundle /实体/ Vendor.php
/**
* @ORM\Entity(repositoryClass="Incompass\VendorBundle\Entity\Repository\VendorRepository")
* @ORM\HasLifecycleCallbacks
*/
class Vendor
{
...
/**
* @ORM\ManyToMany(targetEntity="Incompass\HospitalBundle\Entity\Hospital", inversedBy="authorized_vendors")
* @ORM\JoinTable(name="AuthorizedVendor",
* joinColumns={@ORM\JoinColumn(name="vendor_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="hospital_id", referencedColumnName="id")}
*)
*/
protected $authorized_hospitals;
HospitalBundle /实体/ Hospital.php
/**
* @ORM\Entity(repositoryClass="Incompass\HospitalBundle\Entity\Repository\HospitalRepository")
* @ORM\HasLifecycleCallbacks
*/
class Hospital
{
...
/**
* @ORM\ManyToMany(targetEntity="Incompass\VendorBundle\Entity\Vendor", mappedBy="authorized_hospitals")
* @ORM\JoinTable(name="AuthorizedVendor",
* joinColumns={@ORM\JoinColumn(name="hospital_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="vendor_id", referencedColumnName="id")}
*)
*/
protected $authorized_vendors;
VendorBundle /表格/ VendorType.php
class VendorType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('authorized_hospitals', 'entity',
array(
'class' => 'IncompassHospitalBundle:Hospital',
'multiple' => true,
'property' => 'name'
)
)
->add('name', 'text')
->add('address', 'text')
->add('phone', 'text');
}
/AdminBundle /资源/views/Vendors/new.html.twig
<section class="col-md-12">
{{ form_widget(form) }}
</section>
这就是得到渲染,我有一些医院在数据库中,所以我不知道为什么他们没有出现在选择。
<div class="form-group">
<label class="control-label required" for="authorized_hospitals">Authorized hospitals</label>
<select id="authorized_hospitals" name="authorized_hospitals[]" required="required" class="form-control" multiple="multiple"></select>
</div>