标签: symfony-forms

将错误添加到Symfony 2表单元素

我在我的控制器中检查了一些验证.而且我想在失败时将错误添加到表单的特定元素中.我的表格:

use Symfony\Component\Form\FormError;

// ...

$config = new Config();
$form = $this->createFormBuilder($config)
        ->add('googleMapKey', 'text', array('label' => 'Google Map key'))
        ->add('locationRadius', 'text', array('label' => 'Location radius (km)'))
        ->getForm();

// ...

$form->addError(new FormError('error message'));
Run Code Online (Sandbox Code Playgroud)

addError()方法向表单添加错误,而不是元素.如何向locationRadius元素添加错误?

php validation symfony-forms symfony

82
推荐指数
2
解决办法
6万
查看次数

Symfony2设置默认选项字段选择

我正在以下列方式创建表单:

$form = $this->createFormBuilder($breed)
             ->add('species', 'entity', array(
                  'class' => 'BFPEduBundle:Item',
                  'property' => 'name',
                  'query_builder' => function(ItemRepository $er){
                      return $er->createQueryBuilder('i')
                                ->where("i.type = 'species'")
                                ->orderBy('i.name', 'ASC');
                  }))
             ->add('breed', 'text', array('required'=>true))
             ->add('size', 'textarea', array('required' => false))
             ->getForm()
Run Code Online (Sandbox Code Playgroud)

如何为物种列表框设置默认值?


谢谢你的回复,我道歉,我想我应该重新解释一下我的问题.一旦我有一个从模型中检索的值,如何为物种选择列表中的相应值将该值设置为SELECTED ="yes"?

因此,TWIG视图中的选择选项输出将如下所示:

<option value="174" selected="yes">Dog</option>
Run Code Online (Sandbox Code Playgroud)

forms default symfony-forms symfony

68
推荐指数
5
解决办法
14万
查看次数

Symfony2中ObjectManager和EntityManager之间的区别?

什么之间的区别Doctrine\Common\Persistence\ObjectManager,并Doctrine\ORM\EntityManager在自定义表单类型使用的时候吗?

我可以使用$this->em->getRepository()和来获取存储库$this->om->getRepository().

class MyFormType extends \Symfony\Component\Form\AbstractType
{

    /**
     * @var Doctrine\ORM\EntityManager
     */
    protected $em;

    public function __construct(Doctrine\ORM\EntityManager $em)
    {
        $this->em = $em;
    }

 }
Run Code Online (Sandbox Code Playgroud)

代替:

class MyFormType extends \Symfony\Component\Form\AbstractType
{

    /**
     * @var Doctrine\Common\Persistence\ObjectManager
     */
    protected $om;

    public function __construct(Doctrine\Common\Persistence\ObjectManager $om)
    {
        $this->om = $om;
    }

 }
Run Code Online (Sandbox Code Playgroud)

doctrine symfony-forms symfony doctrine-orm

65
推荐指数
1
解决办法
2万
查看次数

简单检查表单字段是否在Twig模板中有错误

在Twig模板中,我检查一个字段是否有这样的错误:

{% if form.points.get('errors') is not empty %}
Run Code Online (Sandbox Code Playgroud)

有没有像这样的方法:

{% if form.points.hasErrors() %}
Run Code Online (Sandbox Code Playgroud)

做得更简单?这不是一个很大的区别,但如果我不能做到更容易,为什么不呢.

symfony-forms symfony twig

60
推荐指数
4
解决办法
6万
查看次数

Symfony使用映射的伪表单字段验证表单

我有与该选项添加额外的字段的表格mappedfalse.但是当我尝试验证我的表单时,它不会在这些特定表单字段上方传递指示"此值无效".这个选项不应该绕过验证吗?

这些表单字段仅用于填充其他字段,我不需要保存甚至检查它们.

我找到的唯一解决方案是在提交按钮单击时删除带有js的所有额外字段.

validation symfony-forms symfony

32
推荐指数
3
解决办法
4万
查看次数

Symfony 2:添加自定义表单元素,而不是在实体中

我使用Symfony2,我想创建一个注册表单.我不想使用FOSUserBundle.

所以,我创建了一个实体帐户(包括字段:用户名,密码,电子邮件...),我创建了表单:

 $account = new Account();

$form = $this->createFormBuilder($account)
  ->add('username',         'text', array('label' => 'Nom de compte :'))
  ->add('password',    'password', array('label' => 'Mot de passe :'))
  ->add('email',            'email', array('label' => 'Adresse email :'))
  ->getForm();
Run Code Online (Sandbox Code Playgroud)

现在,我想为密码添加一个确认字段.但是,当我尝试使用add()方法添加字段时,例如"password_confirmation"我有这个:

类"App\FrontBundle\Entity\Account"中不存在属性"password_confirmation"和方法"getPasswordConfirmation()"以及方法"isPasswordConfirmation()"

如何添加自定义字段?之后,如何有效呢?

谢谢.BR.

symfony-forms symfony

31
推荐指数
2
解决办法
2万
查看次数

将类应用于Symfony2表单标签

我正在尝试使用php模板在表单标签上的类上设置类.

这是我的代码:

<?php echo $view['form']->label($form['first_name'], 'First Name', array(
    'attr' => array('class' => 'control-label')
)) ?>
Run Code Online (Sandbox Code Playgroud)

但这是我的输出:

<label class="required" for="form_first_name">First name</label>
Run Code Online (Sandbox Code Playgroud)

我可以找到如何使用twig,但不是PHP的例子.

symfony-forms symfony

28
推荐指数
1
解决办法
3万
查看次数

向字段添加"帮助"消息

我试图在symfony2中的每个字段之后添加一些帮助消息.

我在官方文档中读到了一个解决方案:http://symfony.com/doc/current/cookbook/form/form_customization.html#adding-help-messages

但是这个解决方案毫无意义,因为我们需要手动创建所有表单.例如,很容易定义标签:$formBuilder->add('myfieldname', 'text', array('label'=>'some my field label'));但如何传递帮助信息?(换句话说,一些自定义变量)

symfony-forms symfony

26
推荐指数
3
解决办法
2万
查看次数

Symfony2表单事件的描述?

这是FormEvents来自github上的Symfony2存储库的类.它与主要文章" 如何使用表单事件动态生成表单"相关联.

任何人都知道在流程中调用这些事件的确切时间?

namespace Symfony\Component\Form;

/**
 * @author Bernhard Schussek <bernhard.schussek@symfony.com>
 */
final class FormEvents
{
    const PRE_BIND = 'form.pre_bind';
    const POST_BIND = 'form.post_bind';
    const PRE_SET_DATA = 'form.pre_set_data';
    const POST_SET_DATA = 'form.post_set_data';
    const BIND_CLIENT_DATA = 'form.bind_client_data';
    const BIND_NORM_DATA = 'form.bind_norm_data';
    const SET_DATA = 'form.set_data';
}
Run Code Online (Sandbox Code Playgroud)

symfony-forms symfony

26
推荐指数
1
解决办法
1万
查看次数

Symfony2 - form_start函数在树枝中自定义

形成帮手form_start,form_end在树枝上很有用:

{{ form_start(form) }}
{{ form_end(form) }}
Run Code Online (Sandbox Code Playgroud)

我可以自定义一些参数,如methodaction.但我需要自定义其他参数,例如class或添加form-enctype.

我可以做吗?我应该把它设置成FormType.php

从现在开始,我只是尝试将自定义值添加到twig函数中,如下所示:

{{ form_start(form, {'class': 'myclass', 'action': 'myaction'}) }}
// fields...
{{ form_end(form, {'render_rest': true}) }}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,例如,class没有出现.

forms symfony-forms symfony twig symfony-2.3

26
推荐指数
1
解决办法
3万
查看次数