2

我正在使用 Symfony2,这是我的问题:我有 3 个实体,类别、子类别和文章。一个分类可以有很多子分类,每个子分类可以有很多篇文章。因此,Category 和 SubCategory 之间以及 SubCategory 和 Article 之间存在双向 oneToMany 关系。这种设计是一种约束,我无法改变它。

我必须制作一个用于编辑文章的表单,用户必须在其中选择类别,然后选择文章所属的子类别。

但是,当用户更改类别下拉列表的值时,我找不到如何动态更新子类别列表。子类别下拉列表应该只显示链接到当前类别的子类别。

我已经制作了用于编辑文章的表单类型:

class ArticleType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('domain', new SubCategoryPickerType())
            ->add('title')
            ->add('description')
            ->add('content')
        ;
    }

    // ...

然后我开始制作基于 2 个下拉列表获取实体的表单:

class DomainPickerType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('category')
            ->add('name', 'entity', array(
                    'class' => 'Htbf\CoreBundle\Entity\SubCategory',
                    'property' => 'name'))
        ;
     // ...

问题是,像这样,2 下拉不相互依赖:当第一个被更改时,第二个不会更新,第二个包含子类别的所有可能性,而不是与当前类别关联的那个。

知道该怎么做吗?提前致谢 !

4

0 回答 0