Controller :
Yii::import("xupload.models.XUploadForm"); //enciora
$photos = new XUploadForm;
$this->render('create', array(
'model' => $model,
'photos' => $photos
));
create: <?php echo
$this->renderPartial('_form',
array(
'model'=>$model,
'photos' => $photos
)); ?>
_form: <?php
$this->widget( 'xupload.XUpload', array(
'url' => Yii::app()->createUrl( "/encionmentDetail/upload"),
//our XUploadForm
'model' => $photos,
//We set this for the widget to be able to target our own form
'htmlOptions' => array('id'=>'encionment-detail-form'),
'attribute' => 'file',
'multiple' => true,
//Note that we are using a custom view for our widget
//Thats becase the default widget includes the 'form'
//which we don't want here
'formView' => 'application.views.encionmentDetail._form',
)
);
?>
错误:未定义的变量:模型或未定义的变量:照片。这是出现的错误 在创造时。如果一个模型通过,那么它显示正确。请帮忙
嗯,问题在于这行'formView'=&gt; 'application.views.encionmentDetail._form'
。如果我删除此行,则没有错误。我该怎么办?
答案 0 :(得分:0)
这很可能是因为你的_form和
的内在形式'formView' => 'application.views.encionmentDetail._form',
是一样的。在表单视图中使用不同的一个。它有点递归。
答案 1 :(得分:0)
: -
<?php
Yii::import("xupload.models.XUploadForm");
$photos = new XUploadForm;
$this->render('create', array(
'photos' => $photos,
));
?>
创建一个在渲染文件中传递bot模型的文件: -
<?php echo $this->renderPartial('_form', array('model'=>$model,'photo'=>$photo))
重要提示:必须与id和extensition html选项ID相同
答案 2 :(得分:0)
当xupload小部件视图包含<form>
时会发生这种情况,因此当它呈现时它会嵌套在CActiveForm中。
修复它的方法之一:
将CActiveForm小部件放在 create.php
中将标准xupload表单视图(... \ protected \ extensions \ xupload \ views \ form.php)中的所有内容复制到模型_form.php(... \ protected \ views \ somemodel_form.php)
从 _form.php
中删除<?php if ($this->showForm) echo CHtml::beginForm($this -> url, 'post', $this -> htmlOptions);?>
和
<?php if ($this->showForm) echo CHtml::endForm();?>
答案 3 :(得分:-1)
另一件事是您无法在窗口小部件配置中更改属性的值。它必须是内部服务器错误(500)发生的另一种方式的“文件”。