复选框预选不适用于EntityType字段(ManyToMany)

时间:2016-06-17 09:26:37

标签: php symfony symfony-forms

我的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');

        // ...
    }
}

车辆创作工作正常,例如我的结果: enter image description here

问题是在车辆编辑页面上未选择国家/地区(在该示例中为“吉尔吉斯斯坦”),当使用“选项”选项时:

enter image description here

但没有它,预选国家:

enter image description here

$this->worldManager->getCountriesByRegionIds([1]) - 从存储库返回WorldCountry数组。

更新
无意中我已将Symfony更新到v2.8.7 - 现在它按预期工作:)

P.S。如果需要更多信息,请与我们联系。

0 个答案:

没有答案