2012-04-09 7 views
1
namespace Topxia\LiftBundle\Form; 

use Symfony\Component\Validator\Constraint as Assert; 

class AddUser { 

    /** 
    * @Assert\NotBlank(message="用户名不能为空") 
    */ 
    public $username; 

    /** 
    * @Assert\NotBlank(message="用户姓名不能为空") 
    */ 
    public $name; 

    /** 
    * @Assert\NotBlank(message="密码不能为空") 
    * @Assert\MinLength(limit=4,message="密码太短了") 
    * @Assert\MaxLength(limit=24,message="密码太长了") 
    */ 
    public $password; 

    /** 
    * @Assert\NotBlank(message="密码不能为空") 
    */ 
    public $rpassword; 

    /** 
    * @Assert\NotBlank(message="邮箱格式不正确") 
    * @Assert\Email(message="邮箱格式不正确") 
    */ 
    public $email; 

    /** 
    * @Assert\NotBlank(message="k3系统编号不能为空") 
    */ 
    public $num; 

    /** 
    * @Assert\NotBlank() 
    * @Assert\Choice({"0", "1", "2", "3", "4"}) 
    */ 
    public $roles; 

    public $changePassword; 
} 

<?php 
// src/Topxia/LiftBundle/Form/AddUserType.php 

namespace Topxia\LiftBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilder; 

class AddUserType extends AbstractType{ 

    public function buildForm(FormBuilder $builder, array $options){ 
     $builder->add('username', 'text', array('label' => '用户姓名')); 
     $builder->add('name', 'text', array('label' => '用户名')); 
     $builder->add('password', 'password', array('label' => '密码')); 
     $builder->add('rpassword', 'password', array('label' => '重复密码')); 
     $builder->add('email', 'email', array('label' => '邮件')); 
     $builder->add('num', 'text', array('label' => 'K3系统编号')); 
     $builder->add('roles', 'choice', array('label' => '用户组', 'multiple' => false, 'expanded' => true, 
       'choices' => array(
        '0' => '超级管理员', 
        '1' => '仓库管理员', 
        '2' => '采购管理员', 
        '3' => '采购员', 
        '4' => '供应商' 
     ), 
     )); 
     $builder->add('changePassword', 'checkbox', array('label' => '登录修改密码', 'value' => '1')); 
    } 

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

} 

wenn ich $ form- verwenden> BindRequest ($ request); Im Controller gibt es einen Fehler: [Semantischer Fehler] Die Annotation "@Symfony \ Component \ Validator \ Constraint \ NotBlank" in der Eigenschaft Topxia \ LiftBundle \ Form \ AddUser :: $ Benutzername existiert nicht oder konnte nicht automatisch geladen werden . 500 Interner Serverfehler - AnnotationException Ich habe keine Ahnung davon. DankeSymfony2 BindRequest Fehler

Antwort

7

Sie haben einen Tippfehler in Ihrer Namespace-Deklaration. Sie fehlt ein "s":

use Symfony\Component\Validator\Constraints as Assert; 
+0

Ich denke, es ist symfony hat einen Tippfehler. Alle anderen Namen von Namespaces sind singulär. – meze

+0

Es ist wahrscheinlich kein Tippfehler, aber das stimmt nicht mit anderen Namensräumen überein – Josiah

1

Max Länge nicht nach 2.3 nicht vorhanden ist. Verwenden Sie:

Nahm mich so viel Zeit, um herauszufinden.

Der Fehler, den ich hatte, war:

[Semantische Fehler] Die Anmerkung "@Symfony \ Component \ Validator \ Constraints \ MaxLength" in Eigentum .... Publikation :: $ Kommentar nicht existiert, oder konnte nicht automatisch geladen werden.