我的控制器Sitecontroller.php
,查看文件upload_new.php
,型号为Resume_edit.php
。
我收到了这个错误:
致命错误:在第406行的C:\ wamp \ www \ yii \ jobsite_orginal \ protected \ controllers \ SiteController.php中的非对象上调用成员函数saveAs()*
Sitecontroller.php
<?php
class SiteController extends Controller
{
public function actionupload_new()
{
$user_id = 97;
$jobProfileM2 = new Resume_edit();
$jobProfileM2 = Resume_edit::model()->findByAttributes(array('user_id' => $user_id));
if(isset($_POST['Resume_edit']))
{
$jobProfileM2->attributes = $_POST['Resume_edit'];
$jobProfileM2->user_id = $user_id;
if($jobProfileM2->save())
{
$jobProfileM2->user_id = $user_id;
Yii::app()->user->setFlash('success', "Resume Updated Successfully!");
$time=time(); $filename=CUploadedFile::getInstance($jobProfileM2,'resume');
$filename2=explode('.',$filename);
$filename3=$filename2[0].$time.'.'.$filename2[1];
$jobProfileM2->resume=$filename3;
if($jobProfileM2->save())
{
$jobProfileM2->resume->saveAs(Yii::app()->basePath.'/../resume/'.$filename3);
}
}
else
{
Yii::app()->user->setFlash('error', "Error,Canot save Data!");
}
}
$this->render('upload_new', array('model' => $jobProfileM2));
}
}
?>
查看-upload_new.php
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableClientValidation'=>true,
'htmlOptions' => array('enctype' => 'multipart/form-data'),
'clientOptions'=>array(
'validateOnSubmit'=>true
),
)); ?>
<?php
foreach(Yii::app()->user->getFlashes() as $key => $message) {
echo '<div class="flash-' . $key . '">' . $message . "</div>\n";
}
?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<div class="row">
<?php
echo $form->labelEx($model, 'resume');
echo $form->fileField($model, 'resume');
echo $form->error($model, 'resume');
?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Submit'); ?>
</div>
<?php $this->endWidget(); ?>
</div>
这是第406行:
$jobProfileM2->resume->saveAs(Yii::app()->basePath.'/../resume/'.$filename3);
我该如何解决这个问题?
答案 0 :(得分:0)
resume
是模型Resume_edit
的属性,属性没有函数saveAs()
。
如果要移动/重命名文件,请使用rename()
方法。
$newFileName = Yii::app()->basePath.'/../resume/'.$filename3;
@rename($jobProfileM2->resume, $newFileName);
$jobProfileM2->resume = $filename3;