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',
            )    
        );
        ?>

エラー: 未定義の変数: モデルまたは未定義の変数: photos 。
これは、作成中に発生するエラーです。1 つのモデルが渡されると、適切に表示されます。助けてください

さて、問題はこの行 'formView' => 'application.views.encionmentDetail._form' にあります

. この行を削除してもエラーはありません。私は何をすべきか ?

4

4 に答える 4

0

これは、あなたの_formとあなたの内部フォームが

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

同じだ。フォームビューで別のものを使用します。そのようなものは再帰的になります。

于 2013-03-08T22:28:14.210 に答える
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))

重要な注意:アクティブな from id と拡張機能の html オプション id を同じにする必要があります

于 2013-03-16T07:22:34.213 に答える
0

snow_walker 絶対に正しいですが、詳細を説明したいと思います。まあ、誰かの助けになるかもしれません。

このようなケースは、xupload ウィジェット ビューに が含まれている場合に発生する<form>ため、レンダリングすると CActiveForm にネストされます。

それを修正する方法の1つ:

create.php に CActiveForm ウィジェットを配置する

標準の 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 に答える
-1

もう 1 つのことは、ウィジェット構成で属性の値を変更できないことです。内部サーバー エラー (500) が発生する場合は、「ファイル」である必要があります。

于 2013-09-02T23:55:32.563 に答える