Yii框架上的表单验证错误?

时间:2014-04-07 08:16:37

标签: php yii

我是Yii的新人,我尝试过Crud和成功。现在尝试创建验证,但仍然是错误。

这是我的脚本 的型号:Buku.php

public function rules()
    {
        return array(
            array('judul, penulis'),
            array('judul', 'length','max'=>50),
            array('penulis', 'length', 'max'=>50),
            array('judul,penulis', 'on'=>'search'),
        );       

    }

控制器:BukuController.php

public function actionCreate()
    {
        $model = new Buku;
        if(isset($_POST['Buku']))
        {
            $model->judul    =$_POST['Buku']['judul'];
            $model->penulis  =$_POST['Buku']['penulis'];
            $model->save();

            /*if($model->save())
            {
                Yii::app()->user->setFlash('Succes', "Data berhasil Disimpan");
                $this->redirect(array('index'));
            }*///end of

        }//end if isset
        $this->render('create',array('model'=>$model));
    }//end of class

查看:create.php

<div class="form">

    <h2>Add Data</h2>
    <?php echo CHtml::beginForm(array('buku/create'));?>

    <?php 

    echo CHtml::errorSummary($model);
    ?>
    <div class="row">
        <?php echo CHtml::activeLabel($model,'judul');?>
        <?php echo CHtml::activeTextField($model,'judul','');?>
        <?php echo CHtml::errorSummary($model,'judul');?>
    </div>
    <div class="row">
        <?php echo CHtml::activeLabel($model,'penulis');?>
        <?php echo CHtml::activeTextField($model,'penulis','');?>
        <?php echo CHtml::errorSummary($model,'penulis');?>
    </div>
    <div class="row buttons">
        <?php echo CHtml::submitButton('Submit');?>
        <?php echo CHtml::endForm();?>
    </div>

</div>

错误消息是

Buku has an invalid validation rule. The rule must specify attributes to be validated and the validator name

任何人都可以帮忙吗? 我非常感谢你的回答。 感谢

3 个答案:

答案 0 :(得分:0)

请求编辑第一行,可能你想要'必需'

array('judul, penulis','required'),

这不是必需的:

$model->judul    =$_POST['Buku']['judul'];
$model->penulis  =$_POST['Buku']['penulis'];

您可以使用质量分配:http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/

$model->attributes=$_POST['Buku'];

答案 1 :(得分:0)

在您的Model类方法规则中,第一条规则无效: array('judul, penulis') - &gt;没有指定验证规则。 至少尝试:

array('judul, penulis', 'required')

Yii中所有验证规则的列表: http://www.yiiframework.com/wiki/56/

答案 2 :(得分:-2)

验证的工作原理 验证器的参数 验证者的选择 方案 验证规则参考

布尔值:CBool​​eanValidator

captcha:CCaptchaValidator

比较:CCompareValidator

日期:CDateValidator

默认值:CDefaultValueValidator

电子邮件:CEmailValidator

存在:CExistValidator

file:CFileValidator

filter:CFilterValidator

in:CRangeValidator

长度:CStringValidator

数字:CNumberValidator

匹配:CRegularExpressionValidator

必需:CRequiredValidator

安全:CSafeValidator

键入:CTypeValidator

unique:CUniqueValidator

不安全:CUnsafeValidator

url:CUrlValidator

选定的读数 在Yii中内置验证器......