2
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';
    }

}

$form->bindRequest($request); を使用する場合 コントローラにエラーがあります: [Semantical Error] プロパティ Topxia\LiftBundle\Form\AddUser::$username の注釈 "@Symfony\Component\Validator\Constraint\NotBlank" が存在しないか、自動ロードできませんでした。500 内部サーバー エラー - AnnotationException これについてはわかりません。ありがとう

4

2 に答える 2

10

名前空間宣言にタイプミスがあります。「s」がありません:

use Symfony\Component\Validator\Constraints as Assert;
于 2012-04-09T05:27:16.680 に答える
1

Max Length は 2.3 以降には存在しません。使用する:

\Length(max = "150")

理解するのにとても時間がかかりました。

私が持っていたエラーは次のとおりです。

[Semantical Error] プロパティ ....Publication::$comment 内の注釈 "@Symfony\Component\Validator\Constraints \MaxLength" が存在しないか、自動読み込みできませんでした。

于 2013-12-04T20:44:23.900 に答える