在laravel / doctrine中将symfony / constraint / validation实现为assert

时间:2016-03-25 15:43:26

标签: php symfony laravel doctrine-orm laravel-5

对于新项目,我使用Laravel/Doctrine

一切正常,我也实施了Auth服务。

我经常使用symfony,所以我想知道是否有办法在laravel中实现Symfony validations constraints for doctrine,或者像Laravel中的这个symfony组件一样。

为了在我的学说实体中使用:

use Symfony\Component\Validator\Constraints as Assert;

class Test
{
    /**
     * @Assert\Email(
     *     message = "The email '{{ value }}' is not a valid email.",
     *     checkMX = true
     * )
     */
     protected $email;
}

有没有办法告诉我如何在良好实践中做到这一点?

2 个答案:

答案 0 :(得分:1)

我认为学说甚至不知道"关于symfonys Validator约束。它是DoctrineBundle粘合symfony /验证器。

所以也许你可以安装symfony / validator并自己做胶水代码。

这是将验证器绑定到doctrine的DIC配置: https://github.com/doctrine/DoctrineBundle/blob/master/Resources/config/orm.xml#L47

答案 1 :(得分:0)

composer.json

    "symfony/validator": "^5.1",
    "laravel-doctrine/orm": "~1.5",
    "doctrine/annotations": "^1.11",

public / index.php

use Doctrine\Common\Annotations\AnnotationRegistry;

$loader = require __DIR__.'/../vendor/autoload.php';

AnnotationRegistry::registerLoader(array($loader, "loadClass"));

为了正确使用Works控制台理论工具,也需要添加

工匠

use Doctrine\Common\Annotations\AnnotationRegistry;
$loader = require __DIR__.'/vendor/autoload.php';
AnnotationRegistry::registerLoader(array($loader, "loadClass"));

您可以通过Symfony\Component\Validator\Constraints

使用验证器来验证实体