モデルを使用してファイルをアップロードしようとしています。現在の状況で例外メッセージが表示されます (以下のモデル/コントローラー/ビューを参照):
CException
MyFile and its behaviors do not have a method or closure named "save".
私のモデルが CFormModel の代わりに CActiveRecord を拡張する場合、別の例外があります:
CDbException
The table "MyFile" for active record class "MyFile" cannot be found in the database.
私の間違いは何ですか?これらはファイルです:
モデル: MyFile.php
class MyFile extends CFormModel {
public $image;
public function rules () {
return array (
array ('image', 'file', 'types' => 'gif, jpg, png'),
);
}
}
コントローラー: MyFileController.php
class MyFileController extends CController {
public function actionCreate() {
$model = new MyFile;
if(isset($_POST['MyFile'])) {
$model->attributes=$_POST['MyFile'];
$model->image=CUploadedFile::getInstance($model,'image');
if($model->save()) {
$path = Yii::app()->runtimePath.'/temp/uploadDirectory/'.$model->image;
$model->image->saveAs($path);
}
}
$this->render('create', array('model'=>$model));
}
}
見る: create.php
<h1>File-Upload</h1>
<?php
echo CHtml::form('','post',array('enctype'=>'multipart/form-data'));
echo CHtml::activeFileField($model, 'image');
echo CHtml::submitButton('abschicken', array('name' => 'submit'));
echo CHtml::endForm();
?>