My controller Sitecontroller.php
, view file upload_new.php
, model is Resume_edit.php
.
I got this error :
Fatal error: Call to a member function saveAs() on a non-object in C:\wamp\www\yii\jobsite_orginal\protected\controllers\SiteController.php on line 406*
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));
}
}
?>
view-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>
";
}
?>
<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>
This is line 406:
$jobProfileM2->resume->saveAs(Yii::app()->basePath.'/../resume/'.$filename3);
How can I fix this ?
resume
is a property of your model Resume_edit
, and properties do not have a function saveAs()
.
If you want to move/rename files, use the rename()
method.
$newFileName = Yii::app()->basePath.'/../resume/'.$filename3;
@rename($jobProfileM2->resume, $newFileName);
$jobProfileM2->resume = $filename3;