【问题标题】:Simple Symfony2 / Doctrine Validation not working简单的 Symfony2 / 学说验证不起作用
【发布时间】:2013-07-07 21:49:00
【问题描述】:

这只是没有意义。我似乎无法进行简单的 Symfony2 验证。

$insert = new MyEntity();
$insert->setTest1( 'test' );
$validator = $this->get('validator');
$errors = $validator->validate($insert);

...但是 $errors 始终是具有空约束数组的对象。它永远不会通过验证。

我的配置(Yaml):

MyBundle\Entity\MyEntity:
    properties:
        test1:
            - MinLength: 10
            - Email
    type: entity
    table: null
    fields:
        id:
            type: integer
            id: true
            generator:
                strategy: AUTO
        test1:
            type: string
            length: 255
            column: test_1
        test2:
            type: integer
            column: test_2
    lifecycleCallbacks: {  }

【问题讨论】:

    标签: symfony doctrine-orm doctrine


    【解决方案1】:

    你在一个 yml 文件中混合了学说的 ma​​pping 和 symfony 的 validation

    yml 中的validation configuration 是从文件中加载的:

    Acme/YourBundle/Resources/config/validation.yml  // YAML
    
    Acme/YourBundle/Resources/config/validation.xml  // XML
    

    mapping information 应该放在以下之一:

    Acme/YourBundle/Resources/config/doctrine/MyEntity.orm.yml  // YAML
    
    Acme/YourBundle/Resources/config/doctrine/MyEntity.orm.xml  // XML
    
    Acme/YourBundle/Resources/config/doctrine/orm/MyEntity.orm.yml // YAML
    
    Acme/YourBundle/Resources/config/doctrine/orm/MyEntity.orm.xml // XML
    

    【讨论】:

    • 完美。谢谢。我还试图让验证器返回一个数组,例如 $errors[0]['message'] = "That is not a valid email address"。它总是返回一个对象,解析成这种格式是一场噩梦。
    • 这实际上与表单无关。我只是使用页面顶部的代码。原始验证器不可能吗?
    猜你喜欢
    • 2014-12-31
    • 2015-02-09
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多