我試圖添加一個文件上傳字段到一個形式在YII,而它成功地提交和上傳文件到正確的文件夾,它沒有添加任何東西到數據庫。YII文件上傳沒有添加到數據庫使用表格
我只學習這個平臺,所以任何指導都會很棒。
這是我的看法......
<div class="row">
<div class="span4"><?php echo $form->labelEx($model,'slider_image'); ?></div>
<div class="span5"><?php echo $form->fileField($model,'slider_image'); ?></div>
<div class="span3"><?php echo $form->error($model,'slider_image'); ?></div>
</div>
這裏是我的控制器......
public function actionEdit() {
$id = Yii::app()->getRequest()->getQuery('id');
$model = CustomPage::model()->findByPk($id);
if (!($model instanceof CustomPage)) {
Yii::app()->user->setFlash('error',"Invalid Custom Page");
$this->redirect($this->createUrl("custompage/index"));
}
if(isset($_POST['CustomPage'])) {
$model->attributes = $_POST['CustomPage'];
$model->image=CUploadedFile::getInstance($model,'slider_image');
if ($model->validate()) {
if ($model->deleteMe) {
$model->delete();
Yii::app()->user->setFlash('info',"Custom page has been deleted");
$this->redirect($this->createUrl("custompage/index"));
} else {
$model->request_url = _xls_seo_url($model->title);
if (!$model->save()) {
Yii::app()->user->setFlash('error',print_r($model->getErrors(),true));
} else {
$model->image->saveAs(Yii::app()->baseUrl.'images/'.$model->image);
Yii::app()->user->setFlash('success',
Yii::t('admin','Custom page updated on {time}.',array('{time}'=>date("d F, Y h:i:sa"))));
$this->beforeAction('edit'); //In case we renamed one and we want to update menu
}
}
}
}
}
和我的模型
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
// other rules
array('slider_image', 'file', 'types'=>'jpg, gif, png'),
);
}
形式本身總體工作正常,不幸的是,我不明白如何YII增加到數據庫
感謝
阿德里安
編輯:香港專業教育學院也明顯得到了slider_image
場在該表
你的控制器代碼會做的是保存在upoloaded文件的文件名的數據庫表。另一件事是:你的代碼'$ model-> image = CUploadedFile :: getInstance($ model,'slider_image');'是指錯誤的屬性。我認爲它應該是'$ model-> slider_image = CUploadedFile :: getInstance($ model,'slider_image');'最後,你需要調用'$ model-> slider_image-> save('path.to.file') ;'爲了將文件保存到磁盤。 –
謝謝你解決了這個問題! – Adrian
很高興我能幫到你。剛發佈解決方案作爲答案,以便其他人可以輕鬆找到答案。 –