dpub33855 2013-11-06 16:11
浏览 34
已采纳

CActiveForm Yii空白数据

I am uploading an image and have a blank post data. Help me please!

    public function actionUpdate()
        {
            if(isset($_GET['TemplateId']))
            {
                $TemplateId = $_GET['TemplateId']; 
            }else{
                $this->setFlash('error', 'Undefined template!');
                $this->render('update');die();
            }
            $model = Store::model()->findByPk($this->module->getStoreId());
            //exit($model->image_logo2);
            //$model = AccountTemplate::model()->findByAttributes(array('account' => $account, 'template' => $TemplateId));
            if($TemplateId==1)
            {
                $last_image = $model->image_logo1;
            }else{
                $last_image = $model->image_logo2;
            }
            if(isset($_POST['Store']))
            {
                    echo "<pre>";print_r($_POST['Store']);die();
                    if($TemplateId==1)
                    {
                        $uploader = CUploadedFile::getInstance($model,'image_logo1');
                    }else{
                        $uploader = \CUploadedFile::getInstance($model,'image_logo2');
                    }
                    $sourcePath = pathinfo($uploader->getName());

                    $fileName = uniqid().'.'.$sourcePath['extension']; 

                    if($sourcePath['extension']!="jpg" && $sourcePath['extension']!="png")
                    {
                        $this->setFlash('error', 'Only jpg or png files!');
                    }else{
                        if($TemplateId==1)
                        {
                            $model->image_logo1 = $fileName; 
                            echo "<pre>";print_r($model->image_logo1);die();
                        }else{
                            $model->image_logo2 = $fileName; 
                            echo "<pre>";print_r($model->image_logo2);die();
                        }
                        if($model->save()) {
                            $uploader->saveAs('uploads/'.$fileName);
                            if(file_exists('uploads/'.$last_image))
                            {
                                //unlink('uploads/'.$last_image);
                            }
                            $this->setFlash('success', 'New logo upload success');
                        }else{
                            $this->setFlash('error', 'New logo not upload!');
                        }
                    }
            }
            $this->render('update', array('model'=>$model, 'TemplateId' => $TemplateId));
        }



    <?php
if(!isset($model))
{

}else{
$form = $this->beginWidget(
    'CActiveForm',
    array(
        'id' => 'upload-form',
        'enableAjaxValidation' => false,
        'htmlOptions' => array('enctype' => 'multipart/form-data'),
    )
);
// ...<img src='/uploads/products/10e83ff7ae580b7e198a38cf9133ff32.jpg'>
// ...
// ...
if($TemplateId==1)
{
    echo $form->labelEx($model, "Logo image");
    echo $form->fileField($model, 'image_logo1');
    echo $form->error($model, 'image_logo1');
}else{
    echo $form->labelEx($model, "Logo image");
    echo $form->fileField($model, 'image_logo2');
    echo $form->error($model, 'image_logo2');
}
echo CHtml::button('Update', array('submit' => array("Template/update/?TemplateId=$TemplateId"))); 
// ...
$this->endWidget();
}
?>

My views

    <?php
if(!isset($model))
{

}else{
$form = $this->beginWidget(
    'CActiveForm',
    array(
        'id' => 'upload-form',
        'enableAjaxValidation' => false,
        'htmlOptions' => array('enctype' => 'multipart/form-data'),
    )
);
// ...<img src='/uploads/products/10e83ff7ae580b7e198a38cf9133ff32.jpg'>
// ...
// ...
if($TemplateId==1)
{
    echo $form->labelEx($model, "Logo image");
    echo $form->fileField($model, 'image_logo1');
    echo $form->error($model, 'image_logo1');
}else{
    echo $form->labelEx($model, "Logo image");
    echo $form->fileField($model, 'image_logo2');
    echo $form->error($model, 'image_logo2');
}
echo CHtml::button('Update', array('submit' => array("Template/update/?TemplateId=$TemplateId"))); 
// ...
$this->endWidget();
}
?>

POST output

 Array
(
    [image_logo1] => 
)
  • 写回答

1条回答 默认 最新

  • doudi7570 2013-11-07 10:16
    关注

    Thanks all for help, guys! This error happened coz i am not write attributeLabels in my model Store

    public function attributeLabels()
        {
            return array(
                .....
                'image_logo' => 'Icon',
                'image_logo1' => 'Icon',
                'image_logo2' => 'Icon',
            );
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址