Symfony2验证器想要成为ValidatorInterface的实例

Nit*_*aco 5 php forms validation symfony symfony-2.5

我想在Symfony2中创建一个表单,所以我按照本网站上的教程进行操作

namespace Project\Foo\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Project\Foo\Entity\Anfrage;
use Symfony\Component\HttpFoundation\Request;

class UploadController extends Controller
{

public function indexAction(Request $request)
{
    $anfrage = new Anfrage();
    $anfrage->setName('Güntaa');
    $anfrage->setAge(5);
    $anfrage->setEmail('foo@foo.de');

    $form = $this->createFormBuilder($anfrage)
        ->add('save', 'submit', array('label' => 'Create Task'))
        ->getForm();

    return $this->render(
        'Foo:Upload:index.html.twig',
        array(
            'title' => 'Foo',
            'form' => $form->createView(),
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的模板中,我想调用此表单:

{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}
Run Code Online (Sandbox Code Playgroud)

但是当我调用我的模板时,我收到以下错误:

Validator必须是Symfony\Component\Validator\Validator\ValidatorInterface或Symfony\Component\Validator\ValidatorInterface的实例

我不知道,如何解决这个问题.

编辑

这是Anfrage实体:

<?php   

namespace Project\MarkupConverterBundle\Entity;

class Anfrage {

    protected $name;
    protected $age;
    protected $email;

    public function getName()
    {
        return $this->name;
    }

    public function setName($name)
    {
        $this->name = $name;
    }

    public function getAge()
    {
        return $this->age;
    }

    public function setAge($age)
    {
        $this->age = $age;
    }

    public function getEmail()
    {
        return $this->email;
    }

    public function setEmail($email)
    {
        $this->$email = $email;
    }
}
Run Code Online (Sandbox Code Playgroud)

EDIT2

当我尝试使用没有类的表单时,我得到相同的错误

namespace Project\Foo\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class UploadController extends Controller
{

public function indexAction(Request $request)
{
    $defaultData = array('message' => 'The message from you');

    $form = $this->createFormBuilder($defaultData)
        ->add('message', 'text')
        ->add('save', 'submit', array('label' => 'Create Task'))
        ->getForm();

    $form->handleRequest($request);

    if ($form->isValid()){
        $data = $form->getData();
    }

    return $this->render(
        'Foo:Upload:index.html.twig',
        array(
            'title' => 'Foo',
            'form' => $form->createView(),
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)

Nit*_*aco 0

问题已解决:我的服务名称是 Validator。这确实不是一个好主意。感谢所有试图提供帮助的人。