Я создал правило проверки загруженного файла без таблицы в моей базе данных, поэтому то, что я сделал, я просто расширил с помощью CFormModel.Правило проверки правильности Yii не работает
Вот мой код:
Контроллер
public function actionMaterials($pid)
{
$projectMaterialFile = new ProjectMaterialFile;
$this->render('project_materials',array(
'projectMaterialFile'=>$projectMaterialFile,
));
}
VIEW (Материал проекта)
<div id="exportMaterialContent">
<h4 style="text-align:left;">Export Material Document</h4>
<?php echo CHtml::form($this->createUrl("project/export"),'post',array('enctype'=>'multipart/form-data')); ?>
<?php echo CHtml::activeHiddenField($projectMaterialFile,'idProject',array('value'=>$projectModel->idProject)); ?>
<?php echo CHtml::activeFileField($projectMaterialFile, 'document'); ?>
<?php echo CHtml::submitButton("Export"); ?>
<?php echo CHtml::endForm(); ?>
</div>
Controller - Экспорт (После того, как формы с точки зрения было)
public function actionExport()
{
$model = new ProjectMaterialFile;
$model->attributes = $_POST['ProjectMaterialFile'];
if($model->validate()) {
$model->document = CUploadedFile::getInstance($model,'document');
$model->document->saveAs(Yii::getPathOfAlias('webroot')."/material_document/".$model->document->name);
echo "correct";
} else {
echo "Invalid!";
}
}
Модель
class ProjectMaterialFile extends CFormModel
{
public $document;
public $idProject;
public function rules()
{
return array(
array('document','file','types'=>'csv'),
array('document', 'required'),
);
}
public function attributeLabels()
{
return array(
'document' => 'Project Material Document',
'idProject' => 'Project ID',
);
}
}
Так что я здесь в том, что он всегда работает на ELSE моего контроллера actionExport()
Даже если я пытаюсь echo $model->validate();
, не печатает ничего, поэтому его всегда обращайтесь к инструкции else.
Ваша помощь будет принята с благодарностью и, конечно же, вознаграждена!
Спасибо! :)
вы можете вставить print_r из $ model-> атрибуты? – GBD
Странно, но это вывод: Array ([document] => [idProject] =>) – PinoyStackOverflower