我正在使用 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 下拉不相互依赖:当第一个被更改时,第二个不会更新,第二个包含子类别的所有可能性,而不是与当前类别关联的那个。
知道该怎么做吗?提前致谢 !