2015-02-08 61 views
2

我想验证我的表单。我在config文件夹中创建了validation.yml文件,我的包被注册并且文件被加载到DependencyInjection中。我得到以下错误:Symfony验证表单的两个问题

There is no extension able to load the configuration for "Developer\Forum\ForumBundle\Entity\Registration" (in /var/www/html/forum/src/Developer/Forum/ForumBundle/DependencyInjection/../Resources/config/validation.yml). Looked for namespace "Developer\Forum\ForumBundle\Entity\Registration", found none 

我validation.yml:

Developer\Forum\ForumBundle\Entity\Registration: 
    properties: 
     name: 
      - NotBlank: ~ 
     surname: 
      - NotBlank: ~ 

DependencyInjection:

namespace Developer\Forum\ForumBundle\DependencyInjection; 

use Symfony\Component\DependencyInjection\ContainerBuilder; 
use Symfony\Component\Config\FileLocator; 
use Symfony\Component\HttpKernel\DependencyInjection\Extension; 
use Symfony\Component\DependencyInjection\Loader; 
use Developer\Forum\ForumBundle\Entity\Registration; 

/** 
* This is the class that loads and manages your bundle configuration 
* 
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html} 
*/ 
class DeveloperForumForumExtension extends Extension 
{ 
    /** 
    * {@inheritdoc} 
    */ 
    public function load(array $configs, ContainerBuilder $container) 
    { 
     $configuration = new Configuration(); 
     $config = $this->processConfiguration($configuration, $configs); 

     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); 
     $loader->load('services.yml'); 
     $loader->load('validation.yml'); 
    } 
} 

形式本身工作正常,数据保存到数据库中,但我需要一些验证。什么不见​​了?

+0

尽量简单地不要在包扩展类加载该文件。所以删除'$ loader-> load('validation.yml');' – Matteo 2015-02-08 14:55:29

+0

没有这个,验证不起作用:( – Shepherd 2015-02-08 15:01:31

+0

检查'config.yml'文件关于框架的部分: ... 验证:{enabled:true}' – Matteo 2015-02-08 15:09:50

回答

2

/app/Resources/config/validation.yml自动加载。不要为你的配置加载它,这是错误的。

将此添加到您的配置,以启用验证,并且不要让PHP解析注释。

framework: 
    validation: 
     enabled: true 
     enable_annotations: false 

如果你想添加用户自定义ymls进行验证,就可以将其追加到参数validator.mapping.loader.yaml_files_loader.mapping_files,(Symfony2 how to load validation.yml