Memuat Modelnya Module dalam Widget

Hi, kenapa sy kok tidak bisa memuat modelnya module didalam componentnya module. Seperti ini struktur foldernya:




/modules/YMOnline

        /YMOnline/components/WidYMOnline.php        

        /YMOnline/components/views/ymonline.php

        /YMOnline/controllers/DefaultController.php

        /YMOnline/models/YMOnline.php

        /YMOnline/views/default/index.php          



sy memuat model YMOnline.php dari WidYMOnline.php. Mengaksesnya seperti biasa


$model = YMOnline::model()->findAll();

, Tetapi aksesnya didalam widget module. Kemudian dari halaman site/index, sy mengakses widget WidYMOnline.




$this->('application.modules.YMOnline.components.WidYMOnline');



errornya seperti ini:




PHP Error

Deskripsi


include(YMOnline.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory

File Sumber


C:\xampplite\htdocs\yii\framework\YiiBase.php(338)


00326:      * @param string class name

00327:      * @return boolean whether the class has been loaded successfully

00328:      */

00329:     public static function autoload($className)

00330:     {

00331:         // use include so that the error PHP file may appear

00332:         if(isset(self::$_coreClasses[$className]))

00333:             include(YII_PATH.self::$_coreClasses[$className]);

00334:         else if(isset(self::$_classes[$className]))

00335:             include(self::$_classes[$className]);

00336:         else

00337:         {

00338: include($className.'.php');

00339:             return class_exists($className,false) || interface_exists($className,false);

00340:         }

00341:         return true;

00342:     }



Ada yang pernah ngalami g?. Terus ada saran agar tidak error?.

makasih.

Sy sudah menemukan solusi sementara. Kalo temen-temen ada cara yang lebih baik, akan sangat membantu. Berikut ini scriptnya:




//Pada class modul, setImport path-nya sy tulis lengkap.

    $this->setImport(array(

        'application.modules.YMOnline.models.*',

        'application.modules.YMOnline.components.*',

    ));


// Kemudian pada widget sy tambahkan juga setImport pada init.

<?php

class WidYMOnline extends CWidget

{


    public function init() {

        Yii::app()->setImport(

            array('YMOnline.models.*')

	    );

    }

..



;D

mau nanya broo maaf newbi

fungsi function init()

gunanya buat apa yaa… tengkyu

fungsi init() adalah inisial dari objek, dalam fungsi ini kita bisa memasukan prosedure2/fungsi kita yang akan dijalan pd saat fungsi init() dijalankan. misalnya pada widget, fungsi init() akan dijalankan sebelum widget merender view. Contoh init pada widget




class ContohWidget extends CWidget

{

    public function init() {

        //lakukan sesuatu sebelum widget dijalankan. misalnya mendaftarkan js

    }


    public function run() {

        $this->render('contoh_widget');

    }

}



Contoh lain seperti pada controller, fungsi init() hampir sama.