gpt4 book ai didi

sonata-admin - 在奏鸣曲管理类中添加表单选项

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

如何在 sonata 管理类中向 formmMapper 添加自定义选项?

我在管理类中有与实体相关的表单。出于某种原因,我想将自己的选项添加到其中一个字段

    $formMapper
->with('tab.dimension')
->add('dimension', 'collection', array(
'type' => 'dimension_product',

'allow_add' => true,
'allow_delete' => true,
'required' => false,
'my_custom_options' => false,
))
->end();

不幸的是,这是不可能的,因为这个选项没有在解析器中定义。但是我无法以“正常方式”访问解析器。Sonata 在两种方法中定义了表单生成器:

public function getFormBuilder()
{
$this->formOptions['data_class'] = $this->getClass();

$formBuilder = $this->getFormContractor()->getFormBuilder(
$this->getUniqid(),
$this->formOptions
);

$this->defineFormBuilder($formBuilder);

return $formBuilder;
}


public function defineFormBuilder(FormBuilder $formBuilder)
{
$mapper = new FormMapper($this->getFormContractor(), $formBuilder, $this);

$this->configureFormFields($mapper);

foreach ($this->getExtensions() as $extension) {
$extension->configureFormFields($mapper);
}

$this->attachInlineValidator();
}

允许的选项在此对象中定义:

 new FormMapper($this->getFormContractor(), $formBuilder, $this); 

有人可以给我建议如何添加我自己的选项吗?

最佳答案

聚会有点晚了,但这在某种程度上取决于你想用这个选项做什么。

如果您需要添加一个真正的自定义表单选项,这与直接使用 Symfony 表单没有太大区别。您可以使用 form extension 向给定的表单类型添加额外的选项和功能。 .您甚至可以通过这种方式向奏鸣曲形式类型添加功能。

如果您只需要将一个选项从一个管理员传递给一个子管理员(我认为您可能想要这样做),您可以使用字段描述选项而不是实际的表单选项:

$formMapper
->with('tab.dimension')
->add('dimension', 'collection', array(
'type' => 'dimension_product',

'allow_add' => true,
'allow_delete' => true,
'required' => false,
), array(
'my_custom_options' => false,
))
->end();

现在在您的子管理员中,您可以使用以下方式检索这些选项

$this->getParentFieldDescription()->getOptions();

用于配置您的子管理员。

关于sonata-admin - 在奏鸣曲管理类中添加表单选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26501152/

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