【问题标题】:Loading custom validation yml in Symfony3在 Symfony3 中加载自定义验证 yml
【发布时间】:2016-12-14 18:22:22
【问题描述】:

我正在使用 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');

}

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

提前致谢!

【问题讨论】:

    标签: php symfony symfony-3.1


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2016-04-17
    • 2018-07-28
    相关资源
    最近更新 更多