Hilfe Zum Datei-Upload Bei Fehler: Import And Its Behaviors Do Not Have A Method Or Closure Named "save"

Hallo zusammen,

wie es manchmal so ist, findet man die Lösung beim Schreiben eines Artikels, daher ist es hier trotzdem einmal festgehalten, wie der einfache Dateiupload nach dem Wiki Artikel (mit anderen extends Klassen) von unten funktioniert.

Mein aktuelles Ziel war es einen Dateiupload nach dem Wiki Beispiel von quiang how-to-upload-a-file-using-a-model zu erstellen.

Meine Fehlermeldung ist immer gewesen: Import and its behaviors do not have a method or closure named "save" …

Mein Model


class Import extends CFormModel {

   public $importFile;

   ...

}

Ich nehme keine CActiveRecord Klasse als Erweiterung, da ich hier keine Tabelle für vorgesehen hab. Das ganze soll später ein CSV-Import werden, daher brauche ich nur temporal eine Datei aufm Server.

Mein Controller


class ImportController extends Controller

{

    public $layout='//layouts/column2';

    

    public function actionCreate()

    {

        $model=new Import;

        if(isset($_POST['Import']))

        {

            $model->attributes=$_POST['Import'];

            $model->importFile=CUploadedFile::getInstance($model,'importFile');


            #  save gibts nur in CActiveRecord Klassen

            #if($model->save()) {

            #  für CFormModel Klassen daher validate einsetzen

            if($model->validate()) {


                # saveAs besitzt eine copy Methode, 

                # die hier kein Verzeichnis sondern einen Dateinamen verlangt

                $model->importFile->saveAs('upload/Importe/temp_2013.csv');


                // redirect to success page

                # redirect(controller/action)

                $this->redirect('import/index');

            }

        }

        # ab zur view create.php

        $this->render('create', array('model'=>$model));

    }

Der Controller ist extends Controller und nicht CController, da ich in der view Breadcrumbs einsetze und sonst hierbei Fehler aufkamen mit CController.

Mir ist klar, dass es bei


if($model->save()) {

die save()-Methode nicht für CFormModel gibt, doch selbst validate() wirft einen Fehler.

Wie kann ich die Datei auf dem Server hochladen und speichern? Vor allem mit der CFormModel-Klasse?!

L: validate im if() und saveAs Pfad mit ausgedachtem Dateinamen.

Done: :)