Symfony2表单如何用于验证从文件加载的数据?

时间:2014-05-19 20:49:47

标签: php forms validation symfony doctrine-orm

Symfony2 manual开始,以下是表单验证的方式:

use Symfony\Component\HttpFoundation\Request;

public function createAction(Request $request)
{
    $em = $this->getDoctrine()->getManager();    
    $form = $this->createForm(new RegistrationType(), new Registration());    
    $form->handleRequest($request);

    if ($form->isValid()) {
        $registration = $form->getData();    
        $em->persist($registration->getUser());
        $em->flush();    
        return $this->redirect(...);
    }    
    return $this->render(
        'AcmeAccountBundle:Account:register.html.twig',
        array('form' => $form->createView())
    );
}

底线是我们有一个实体Registration和一个相应的表单RegistrationType。当我们要验证$request中的数据时,我们会使用$form->handleRequest($request);

我想使用相同的方法,但是当我的实体从未通过表单发布的文件加载时。

例如,我有一个CSV文件,其中包含我想为其创建帐户的100个用户的列表,但是数据需要以与验证表单相同的方式进行验证,并且可以使用一组错误从表单类中提取。

有没有办法以类似的方式使用Symfony2自动执行此操作?

1 个答案:

答案 0 :(得分:0)

您好,在最近的一个项目中我们做到了。但是我们读取整个文件CSV并创建了一些保存值的数组。然后我们使用文件中的所有值创建对象,并使用Symfony Validator验证每个对象。如果你想自动完成它是不可能的,你必须自己做。