2017-03-14 60 views
0

我有关于如何调用控制器查看的问题。 我想将我的图片上传到我的主机。我使用名称upload.php创建了模型上传并放入模型文件夹中。像这样的“\保护\型号”关于Yii 1.2框架

<?php class Upload extends CActiveRecord { 
public $image; 
// ... other attributes 

public function rules() 
{ 
    return array(
     array('image', 'file', 'types'=>'jpg, gif, png', 'safe' => false), 
    ); 
} } 

然后我做了一个名为UploadController.php控制器,把控制器中的文件夹中。 “\控制器\ ADMIN”。

<?php class UploadController extends Controller 
 
{ 
 
\t public $layout='//content'; 
 
\t 
 
\t public function actionCreate() 
 
    { 
 
     $model=new Upload; 
 
     if(isset($_POST['Upload'])) 
 
     { 
 
      $model->attributes=$_POST['Upload']; 
 
      $model->image=CUploadedFile::getInstance($model,'image'); 
 
      if($model->save()) 
 
      { 
 
       $model->image->saveAs('/../themes/default/images/shopimg'); 
 
       // redirect to success page 
 
      } 
 
     } 
 
     $this->render('/admin/upload', array('model'=>$model)); 
 
    } 
 
}

然后犯了这样的观点与upload.php的名字,并把它放在视图文件夹

<div class="note"> 
 
\t <div class="note_title"> 
 
\t \t <a href="<?php echo Yii::app()->homeUrl; ?>admin">Admin area</a> &rarr; Add Picture 
 
\t </div> 
 
\t <div class="note_body"> 
 
\t \t <?php if(Yii::app()->user->hasFlash('message')) echo Yii::app()->user->getFlash('message'); ?> 
 
\t \t <?php $form = $this->beginWidget(
 
\t \t 'CActiveForm', 
 
    array(
 
     'id' => 'upload-form', 
 
     'enableAjaxValidation' => false, 
 
     'htmlOptions' => array('enctype' => 'multipart/form-data'), 
 
    ) 
 
); 
 
\t \t ?> \t \t \t 
 
\t <div class="form"><?php echo $form->errorSummary($model); ?></div> 
 
\t \t <table class="table_info"> \t 
 
\t \t \t <tr> 
 
\t \t \t \t <td><?php echo $form->labelEx($model, 'image');?></td> 
 
\t \t \t \t <td><?php echo $form->fileField($model, 'image');?></td> 
 
\t \t \t \t <td><?php echo $form->error($model, 'image');?></td> 
 
\t \t \t \t <td><?php echo CHtml::submitButton('Submit');?></td> 
 
\t \t \t </tr> 
 
\t \t </table> 
 
\t <?php $this->endWidget(); ?> 
 
\t </div> 
 
</div>

然后在我的主页主。我使用这段代码调用上传动作

\t \t \t \t <td> 
 
\t \t \t \t \t <a href="<?php echo Yii::app()->homeUrl; ?>admin/upload"><p>Items Upload</p> 
 
\t \t \t \t \t Items Upload</a> 
 
\t \t \t \t </td>

,但它不工作,我不知道我错过了什么!我总是说 “错误404无法解决请求”上传“。”这是什么意思?

回答

0

yii url格式将基于控制器和操作。

例: - 控制器的名字是UploadController和行动是创建那么URL应该被上传/创建

<a href="<?php echo Yii::app()->homeUrl; ?>upload/create"><p>Items Upload</p>Items Upload</a> 

,如果你的控制器是任何模块内则URL应该是MODULE_NAME/CONTROLLER_NAME/ACTION_NAME。