0

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

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

  2. 我的代码是否有任何明显的问题会导致以下错误?

YamlFileLoader.php 第 404 行中的 InvalidArgumentException:没有扩展能够加载“UserAdminBundle\Entity\User”的配置(在 *****src/UserAdminBundle/DependencyInjection/../Resources/config/validation/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');

}

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

提前致谢!

4

1 回答 1

0

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

于 2016-12-15T08:14:59.353 回答