Php 如何从Yii中的上一个视图中获取值

Php 如何从Yii中的上一个视图中获取值,php,yii,Php,Yii,我不知道该如何描述我的问题。首先,我在CCGridview中添加了一个按钮: array( 'class'=>'CButtonColumn', 'template' => '{view}{update}{delete}{upload_image}', 'buttons' => array( 'upload_image' => array( 'label' => 'upload foto', 'u

我不知道该如何描述我的问题。首先,我在CCGridview中添加了一个按钮:

array(
    'class'=>'CButtonColumn',
    'template' => '{view}{update}{delete}{upload_image}',
    'buttons' => array(
        'upload_image' => array(
        'label' => 'upload foto',
        'url' => 'Yii::app()->createUrl("/image/create",
        array("product_id" => $data->product_id))',
        ),
    ),
),
当我单击它时,它会将我带到/image/create视图,该视图具有产品id值。例如,在gridview上,我单击了记录编号7,因此url为:

(webApp)/index.php/image/create?product_id=7

由于它呈现的是部分表单,因此表单具有与图像表对应的属性,图像表具有以下属性:id、title、filename、product\u id

因此,视图将类似于:

<div class="row">
    <?php echo $form->labelEx($model,'title'); ?>
    <?php echo $form->textField($model,'title',array('size'=>45,'maxlength'=>45)); ?>
    <?php echo $form->error($model,'title'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'filename'); ?>
    <?php echo $form->fileField($model,'filename',array('size'=>45,'maxlength'=>45)); ?>
    <?php echo $form->error($model,'filename'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'product_id'); ?>
    <?php echo $form->textField($model,'product_id'); ?>
    <?php echo $form->error($model,'product_id'); ?>
</div>

<div class="row buttons">
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>

就这样。非常感谢..

以这种方式修改控制器:

if(isset($_POST['Image']))
{
        $model->attributes=$_POST['Image'];
        $tempSave=CUploadedFile::getInstance($model,'filename');
        if($model->validate())
        {
            $uploaded = $tempSave->saveAs($dir.'/'.$tempSave->getName());
            $this->redirect(array('/products/index'));
        }
} else {
   //initialize defaults
   $model->product_id=intval($_GET['product_id']);
}

向我们展示控制器操作,因为这是您需要初始化变量的地方。@Pentium10我在那里添加了控制器
//...
public function actionCreate()
{
            $dir = Yii::app()->basePath . '/../productimages/';
            $uploaded = false;
            $model=new Image();

            if(isset($_POST['Image']))
            {
                $model->attributes=$_POST['Image'];
                $tempSave=CUploadedFile::getInstance($model,'filename');
                if($model->validate())
                {
                    $uploaded = $tempSave->saveAs($dir.'/'.$tempSave->getName());
                    $this->redirect(array('/products/index'));
                }
            }
            $this->render('index', array(
                'model' => $model,
                'uploaded' => $uploaded,
                'dir' => $dir,
            ));
}
if(isset($_POST['Image']))
{
        $model->attributes=$_POST['Image'];
        $tempSave=CUploadedFile::getInstance($model,'filename');
        if($model->validate())
        {
            $uploaded = $tempSave->saveAs($dir.'/'.$tempSave->getName());
            $this->redirect(array('/products/index'));
        }
} else {
   //initialize defaults
   $model->product_id=intval($_GET['product_id']);
}