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>