在Symfony3中加载自定义验证yml

时间:2016-12-14 18:22:23

标签: php symfony symfony-3.1

我正在使用Symfony3(与SonataAdminBundle一起使用),我需要创建一些验证文件。由于我有几个实体,并且我想将验证yml文件拆分为每个实体一个,我想使用依赖注入加载器来加载这些文件。现在,我的问题是:

  1. 如果我为验证文件创建自定义加载器,是否还需要手动加载services.yml和routing.yml?

  2. 我的代码是否存在导致以下错误的明显问题?

  3.   

    YamlFileLoader.php第404行中的InvalidArgumentException:没有   扩展能够加载配置   “UserAdminBundle \ Entity \ User”(in   *****的src / UserAdminBundle / DependencyInjection /../资源/配置/确认/ validation.yml)。   查找命名空间“UserAdminBundle \ Entity \ User”,找不到

    我的档案:

    UserAdminBundle\Entity\User:
        constraints:
            - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity:
                fields: [email]
                message: 'This user already exists'
    UserAdminBundle\Entity\TaxToReseller:
        constraints:
            - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity:
                fields: [resellerId, taxId]
                message: 'Reseller already has this tax'
    UserAdminBundle\Entity\Tax:
        constraints:
            - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity:
                fields: [ name, value ]
                message: 'This tax already exists'
    

    我的加载方法:

    public function load(array $configs, ContainerBuilder $container)
    {
    
        $loader = new YamlFileLoader(
            $container,
            new FileLocator(__DIR__.'/../Resources/config')
        );
    
        //$loader->load('validation/validation.yml');
        $loader->load('validation/agent_validation.yml');
        $loader->load('validation/call_centre_validation.yml');
        $loader->load('validation/reseller_header_validation.yml');
        $loader->load('validation/reseller_validation.yml');
        $loader->load('validation/tax_validation.yml');
    
    }
    

    我可以用一些想法来解释它为什么找不到东西!

    提前致谢!

1 个答案:

答案 0 :(得分:0)

默认情况下会加载Resources/config/validation中的验证文件。无需编辑加载方法。