我的Symfony版本是2.7.3。我有Vehicle
实体,它有WorldCountry
字段(单向ManyToMany):
/**
* Vehicle
* @ORM\Table(name="vehicle")
*/
class Vehicle
{
// ...
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\WorldCountry", fetch="EAGER")
* @ORM\JoinTable(name="vehicle_country_join",
* joinColumns={@ORM\JoinColumn(name="vehicle_id", referencedColumnName="vehicle_id", onDelete="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(name="country_id", referencedColumnName="country_id")}
* )
*/
protected $countries;
// ...
public function __construct()
{
// ...
$this->countries = new ArrayCollection();
}
}
我有车辆创建/编辑表格:
/**
* Class VehicleType
* @package AppBundle\Form\Vehicle
*/
class VehicleType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// ...
->add('countries', 'entity', [
'class' => 'AppBundle:WorldCountry',
'choices' => $this->worldManager->getCountriesByRegionIds([1]),
'choice_label' => 'name',
'expanded' => false,
'multiple' => true,
'label' => false
])
->add('submit', 'submit');
// ...
}
}
问题是在车辆编辑页面上未选择国家/地区(在该示例中为“吉尔吉斯斯坦”),当使用“选项”选项时:
但没有它,预选国家:
$this->worldManager->getCountriesByRegionIds([1])
- 从存储库返回WorldCountry
数组。
更新
无意中我已将Symfony更新到v2.8.7 - 现在它按预期工作:)
P.S。如果需要更多信息,请与我们联系。