gpt4 book ai didi

forms - Symfony2 表单 - 访问父表单的数据

转载 作者:行者123 更新时间:2023-12-02 07:29:29 25 4
gpt4 key购买 nike

如何在子表单中访问父表单的数据?

例如有产品和类别。产品和类别是多对多的。如果我想编辑一个类别的所有产品。每个产品的可编辑数据取决于类别。

是否可以通过使用 Symfony Forms 来实现这一点?

现在我看不到任何可能性,因为产品没有关于当前类别的信息(因为关系是多对多的)。

最佳答案

我相信没有一种方法可以以任何“干净”的方式访问父表单数据。

但是,这是可能的。

您必须将它作为选项从主窗体传递给子窗体。

例子:

主窗体,您将如何包含子窗体:

$builder->add('sub',   new SubType(),   array('parent_data' => $builder->getData());

如果你的子类型是集合,那就有点不同了:

$builder->add('subs',   'collection',   array('type' => new SubType(),
'options' => array('parent_data' => $builder->getData()))
);

将此添加到子表单:

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver
->setRequired(array('parent_data'));
}

public function buildForm(FormBuilderInterface $builder, array $options)
{
$parentData = $options['parent_data'];

... build subform

}

请告诉我它是否有效,我没有测试就写了它,所以我们可以修复任何可能的拼写错误。

关于forms - Symfony2 表单 - 访问父表单的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com