1
 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' => 'application.views.encionmentDetail._form'

. 如果我删除此行,则没有错误。我应该怎么办 ?

4

4 回答 4

0

这很可能是由于您的 _form 和您的内部形式

'formView' => 'application.views.encionmentDetail._form', 

是相同的。在表单视图中使用不同的。它有点递归。

于 2013-03-08T22:28:14.210 回答
0

snow_walker 绝对正确,但我想提供详细信息。好吧,也许它会对某人有所帮助。

当 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();?>
于 2013-05-16T12:43:50.393 回答
0

在控制器文件中:-

<?php 
     Yii::import("xupload.models.XUploadForm"); 

     $photos = new XUploadForm;
     $this->render('create', array(                    

            'photos' => $photos,
     ));
?>

在创建一个在渲染文件中传递机器人模型的文件:-

<?php echo $this->renderPartial('_form', array('model'=>$model,'photo'=>$photo))

重要说明:必须与活动的 id 和扩展 html 选项 id 相同

于 2013-03-16T07:22:34.213 回答
-1

另一件事是您不能在小部件配置中更改属性的值。它必须是“文件”,否则会发生内部服务器错误(500)。

于 2013-09-02T23:55:32.563 回答