Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 验证器不工作Symfony2.1_Php_Forms_Validation_Symfony_Symfony 2.1 - Fatal编程技术网

Php 验证器不工作Symfony2.1

Php 验证器不工作Symfony2.1,php,forms,validation,symfony,symfony-2.1,Php,Forms,Validation,Symfony,Symfony 2.1,我对验证器有问题。如果输入无效数据,我的表单也始终有效。 我的验证器似乎没有被考虑 守则: //validation.yml AskedTech\JobeetBundle\Entity\Users: properties: email: - Email: message: The email "{{ value }}" is not a valid email. groups: [regist

我对验证器有问题。如果输入无效数据,我的表单也始终有效。 我的验证器似乎没有被考虑

守则:

//validation.yml

AskedTech\JobeetBundle\Entity\Users:
properties:
        email:
            - Email:
                message: The email "{{ value }}" is not a valid email.
                groups: [registration]
            - NotBlank: { groups: [registration] }
            - UniqueEntity: { groups: [registration] }
        password:
            - NotBlank: { groups: [registration] }
            - MinLength: { limit: 7, groups: [registration] }
        first_name:
            - NotBlank: { groups: [registration] }
        last_name:
            - NotBlank: { groups: [registration] }
//控制器

namespace AskedTech\JobeetBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use AskedTech\JobeetBundle\Entity\Users;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;

use AskedTech\JobeetBundle\Form\SignupType;

class UsersController extends Controller {

    public function signupAction(Request $request) {

        $users = new Users();
        $form = $this->createForm(new SignupType(), $users);

        if ($request->isMethod('POST')) {
            $form->bind($request);

            if ($form->isValid()) {

                $post_value = $request->request->get($form->getName());

                return $this->redirect($this->generateUrl('welcome', array('name' => $post_value['email'])));

            }
        }

        return $this->render('AskedTechJobeetBundle:Users:signup.html.twig', array(
                    'form' => $form->createView(),
                ));
    }

    public function welcomeAction($name) {
        return new Response('<html><body>Welcome in Jobeet '.$name.'!</body></html>');
    }

}

您应该将validation.yml文件连接到Bundle

在JobeetBundle\DependencyInjection\JobeetExtension中添加以下行:

$yamlMappingFiles=$container-> getParameter('validator.mapping.loader.yaml_files_loader.mapping_files')

$yamlMappingFiles[]=DIR“//Resources/config/validation.yml'; $container->setParameter($validator.mapping.loader.yaml\u files\u loader.mapping\u files',$yamlMappingFiles);

在config.yml中:


验证:{enabled:true}

您应该将validation.yml文件连接到Bundle

在JobeetBundle\DependencyInjection\JobeetExtension中添加以下行:

$yamlMappingFiles=$container-> getParameter('validator.mapping.loader.yaml_files_loader.mapping_files')

$yamlMappingFiles[]=DIR“//Resources/config/validation.yml'; $container->setParameter($validator.mapping.loader.yaml\u files\u loader.mapping\u files',$yamlMappingFiles);

在config.yml中:

验证:{enabled:true}

在config.yml中:

验证:{enabled:true}

这对我起了作用

在config.yml中:

验证:{enabled:true}


这对我起了作用

我认为没有必要手动将验证文件连接到捆绑包,是吗?我从来没必要这么做。链接到validation.yml文件中的正确实体就足够了。另一方面,启用验证可能会解决他的问题。我认为没有必要手动将验证文件连接到捆绑包,是吗?我从来没必要这么做。链接到validation.yml文件中的正确实体就足够了。另一方面,启用验证可能会解决他的问题。
namespace AskedTech\JobeetBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class SignupType extends AbstractType {

    public function buildForm(FormBuilderInterface $builder, array $options) {
        $builder->add('email', 'email');
        $builder->add('first_name', 'text');
        $builder->add('last_name', 'text');
        $builder->add('email', 'text');
        $builder->add('password', 'password');
    }

    public function getName() {
        return 'signup';
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver) {
        $resolver->setDefaults(array(
            'data_class' => 'AskedTech\JobeetBundle\Entity\Users',
            'validation_groups' => array('AskedTech\JobeetBundle\Entity\Users', 'registration')
        ));
    }

}