将错误绑定到symfony2控制器中的嵌入式表单字段

吉米格尔

使用Symfony2.3.​​4

正如标题所解释的那样,我需要将错误消息绑定到嵌入式表单字段,最好是在控制器中。我在想也许与我使用单一表格的方式类似:

use Symfony\Component\Form\FormError;
//....
public function createAction(){
//.....
$postData = current($request->request->all());

if ($postData['field_name'] == '') {
            $error = new FormError("Write some stuff in here");
            $form->get('field_name')->addError($error);
        }
//.....
}

或者也许需要以不同的方式来完成,无论哪种方式我都需要帮助,

谢谢

用户名

我看到,您正在尝试在表单字段不包含任何值时显示一条消息。您可以在表单类中轻松完成此操作,如下所示:

buildForm(FormBuilderInterface $builder, array $options) {
    $builder->add('field_name', 'text', array(
        'label' => 'Field label',
        'required' => true,
        'constraints' => array(
            new NotBlank(array('message' => 'Write some stuff in here.'))
         ),
    ));
}

如果您需要向表单中插入其他类型的约束(这不是Symfony2框架的一部分),则可以创建自己的验证约束

如果要向控制器中的表单添加一些选项,可以通过设置自己的选项,在创建表单的方法中完成:

class YourController {
    public function createForm(YourEntity $yourEntity){
        $form = $this->createForm(new YourFormType(), $yourFormType, array(
            'action' => $this->generateUrl('your_action_name', 
            array('your_custom_option_key' => 'Your custom option value')),
            'method' => 'POST',
        ));

        return $form;
    }

    // Rest of code omitted.
}

之后,您需要setDefaultOptions(OptionsResolverInterface $resolver)在表单类的method中添加一个选项,如下所示:

public function setDefaultOptions(OptionsResolverInterface $resolver){
    $resolver->setDefaults(array(
        'your_custom_option_key' => '',
    ));
}

然后在buildForm(FormBuilderInterface $builder, array $options)方法中访问它,如下所示:

buildForm(FormBuilderInterface $builder, array $options) {
    $options['your_custom_option_key']; // Access content of your option

    // The rest of code omitted.
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从symfony 2控制器中删除嵌入式表单中的表单字段

在Symfony2控制器中获取表单值,孩子不存在

从控制器传递选项到嵌入式Symfony表单时,选项不存在错误

将参数传递给Symfony 2.8中的嵌入式控制器

如何在Swift中将数据从父视图控制器传递到嵌入式视图控制器?

在嵌入式视图控制器中执行功能

RSpec控制器测试嵌入式资源中的错误

Symfony2嵌入式表单+动态表单更新

Symfony2将表单提交到其他控制器并检查isValid()

无法将现有实体映射到symfony2中的嵌入式表单

Blade中的嵌入式控制器

如何使用Symfony2路由组件将路由与控制器绑定

如何使用Symfony2中的href路径将javascript变量值从细枝传递到控制器?

Symfony2嵌入式表单标签

处理Symfony2中的额外表单字段

在Symfony2中的嵌入式控制器之间共享数据

覆盖Symfony2中的表单字段模板

多个嵌入式表单上的symfony 2错误

嵌入到嵌入式视图控制器

将JSON数据发布到symfony2控制器

Symfony2将变量从控制器传递到javascript

Symfony2表单-嵌入式表单嵌入在bootstrap表单组中

映射-Symfony2中的Mongodb嵌入式文档

具有前置过滤器的Symfony嵌入式控制器

将表单参数从JSP绑定到spring控制器

如何将动态创建的表单字段绑定到Angular 2中的对象?

Symfony 嵌入式表单

如何从父控制器更改嵌入式控制器中的 UIColor?

如何将表单字段值传递给 Rails 中的不同控制器视图?