Php 验证规则不适用于CActiveForm中的filefield
这里我在CActiveForm中使用fileField,但在模型中,验证规则不适用于该字段。这是我的代码 模型代码 视图代码Php 验证规则不适用于CActiveForm中的filefield,php,yii,yii-extensions,yii-components,Php,Yii,Yii Extensions,Yii Components,这里我在CActiveForm中使用fileField,但在模型中,验证规则不适用于该字段。这是我的代码 模型代码 视图代码 此处所需的和文件验证规则不起作用请尝试以下控制器代码: public function actionCreate() { $model=new Uploadinfo; if(isset($_POST['Uploadinfo'])) { $model->attributes=$_POST['Uploadin
此处所需的和文件验证规则不起作用请尝试以下控制器代码:
public function actionCreate()
{
$model=new Uploadinfo;
if(isset($_POST['Uploadinfo']))
{
$model->attributes=$_POST['Uploadinfo'];
$file=CUploadedFile::getInstance($model,'image');
if($model->validate() && $model->save())
{
$model->image->saveAs('path/to/localFile');
}
}
$this->render('create', array('model'=>$model));
}
你应该设置
allow_empty=>true
让它可以工作观看这篇文章:
在你看来
<?php
$form = $this->beginWidget('CActiveForm', array(
'id'=>'uploadinfo-form',
'enableAjaxValidation'=>true,
'enableClientValidation' => true,
'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); ?>
您在哪里调用
rules()
?在验证模型之前,您调用了die()
。要验证,您应该调用$model->Validate()
或$model->save()
public function actionCreate()
{
$model=new Uploadinfo;
if(isset($_POST['Uploadinfo']))
{
$model->attributes=$_POST['Uploadinfo'];
print_r($_POST['Uploadinfo']);
$file=CUploadedFile::getInstance($model,'image');
print_r($file->getName());
die();
if($model->save())
{
$model->image->saveAs('path/to/localFile');
// redirect to success page
}
}
$this->render('create', array('model'=>$model));
}
public function actionCreate()
{
$model=new Uploadinfo;
if(isset($_POST['Uploadinfo']))
{
$model->attributes=$_POST['Uploadinfo'];
$file=CUploadedFile::getInstance($model,'image');
if($model->validate() && $model->save())
{
$model->image->saveAs('path/to/localFile');
}
}
$this->render('create', array('model'=>$model));
}
array('image', 'file', 'types' => 'jpg, txt, pdf, gif, png', 'allowEmpty'=>true,'on'=>'update', 'on'=>'insert'),
<?php
$form = $this->beginWidget('CActiveForm', array(
'id'=>'uploadinfo-form',
'enableAjaxValidation'=>true,
'enableClientValidation' => true,
'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); ?>