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';
}
}
當我使用$形式 - > bindRequest($請求);在控制器中出現錯誤: [語義錯誤]屬性Topxia \ LiftBundle \ Form \ AddUser :: $ username中的註釋「@Symfony \ Component \ Validator \ Constraint \ NotBlank」不存在或不能自動加載。 500內部服務器錯誤 - AnnotationException 我不知道這件事。 謝謝Symfony2的bindrequest錯誤
我認爲這是symfony有一個錯字。命名空間的所有其他名稱都是單數。 – meze 2012-04-09 07:46:22
這可能不是一個錯字,但是這與其他命名空間不符 – Josiah 2012-04-10 23:57:03