gpt4 book ai didi

symfony - 向symfony表单添加自定义选项

转载 作者:行者123 更新时间:2023-12-04 17:08:52 25 4
gpt4 key购买 nike

1我想做的是在表单小部件模板中添加自定义(在这种情况下,选项为“angular”):

{%- block widget_attributes -%}
id="{{ id }}" name="{{ full_name }}"

{%- if angular %} ng-model="{{ full_name }}"{% endif -%}
....
{%- if intention %} {{ intention }}{% endif -%}
{%- if read_only %} readonly="readonly"{% endif -%}
.....
{%- endblock widget_attributes -%}

我想决定窗体在CustomFormType中是否具有选项。
但是我做不到。我尝试了不同的方法。

是否可以在主表单中添加自定义选项?

我知道有很多教程显示如何在子元素中传递自定义选项,例如 http://symfony.com/doc/current/cookbook/form/create_form_type_extension.html

我调查了表单组件的核心,并且有类
 namespace Symfony\Component\Form\Extension\Core\Type;

class FormType extends BaseType{}

具有方法构建 View
public function buildView(FormView $view, FormInterface $form, array $options)
{

.....

$view->vars = array_replace($view->vars, array(
'read_only' => $readOnly,
'errors' => $form->getErrors(),
'valid' => $form->isSubmitted() ? $form->isValid() : true,
'value' => $form->getViewData(),
'data' => $form->getNormData(),
'required' => $form->isRequired(),
'max_length' => isset($options['attr']['maxlength']) ? $options['attr']['maxlength'] : null, // Deprecated
'pattern' => isset($options['attr']['pattern']) ? $options['attr']['pattern'] : null, // Deprecated
'size' => null,
'label_attr' => $options['label_attr'],
'compound' => $form->getConfig()->getCompound(),
'method' => $form->getConfig()->getMethod(),
'action' => $form->getConfig()->getAction(),
'submitted' => $form->isSubmitted(),

));
}

在symfony上方定义基本选项。我可以在表单模板中全局访问这些选项,但是找不到添加自己的方法。

最佳答案

只需在表单类型中添加默认选项

/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
// default form options
'my_options' => 'my default value option'
));
}

编辑
/**
* {@inheritdoc}
*/
public function buildView(FormView $view, FormInterface $form, array $options)
{
$view->vars['my_options'] = $options['my_options'];
}

关于symfony - 向symfony表单添加自定义选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29408879/

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