[Risolto]Stranezza Sugli Include

Giorno, sono davanti ad una view, "_form" per la precisione, dove dovrei aggiungere una combo contenente tutti i ruoli creati con il modulo "Rights"

Allora apro il file _form.php aggiungo queste righe:




$tutti_i_ruoli = new RAuthItemDataProvider('roles', array(

                'type' => 2,

            ));

$data = $tutti_i_ruoli->fetchData();

e mi torna questa exception :

[color="#FF0000"]include(RAuthItemDataProvider.php) [<a href=‘function.include’>function.include</a>]: failed to open stream: No such file or directory[/color]

C:\web-dev\xampp\htdocs\yii\framework\YiiBase.php(421)

Ho trovato questa soluzione, ma secondo me non è normale, ho aggiunto in testa al file "_form.php"


Yii::import('application.modules.rights.components.dataproviders.RAuthItemDataProvider');



qualcuno ha già avuto casi simili ?

tnx ;)

Secondo te Yii dovrebbe saperre dove si trova un file che tu vuoi includere?

E ovio che gli devi dirre dove si trova un certo file :D

Per i "model" questo non occore farlo perche sono gia "importati" nel config con YiiBase::import - http://www.yiiframework.com/doc/api/1.1/YiiBase#import-detail

Si hai ragione Maurizio avrei dovuto incollare il congif/main.php :




return array(

    'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',

    'name' => 'RiabSystem 1.0',

    'theme' => 'constellation',

    'language' => 'it',

    // preloading 'log' component

    'preload' => array('log'),

    // autoloading model and component classes

    'import' => array(

        'application.models.*',

        'application.components.*',

        'application.modules.rights.*',

        'application.modules.rights.components.*', // Correct paths if necessary.

        'application.modules.notifyii.*',

        'application.modules.notifyii.components.*',

        'application.modules.notifyii.models.*',

    ),

    'modules' => array(

        // uncomment the following to enable the Gii tool

        'notifyii',

        'admin',

        'gii' => array(

            'class' => 'system.gii.GiiModule',

            'password' => 'paskuale',

            // If removed, Gii defaults to localhost only. Edit carefully to taste.

            'ipFilters' => array('127.0.0.1', '::1'),

        ),

        'rights' => array(

            'install' => false, // Enables the installer.

            'debug' => true,

        ),

    ),

la stranezza è proprio in questo e cioè che nel main.php è già detto che deve includerlo ! :(

grazie

hai provato invece di


 'application.modules.rights.components.* 

a fare


 'application.modules.rights.components.dataproviders.* 

?

Yii non include le sottocartelle ma solo i files, per questo non ti trova RAuthItemDataProvider (si trova nella sottocartella dataproviders)

@realtebo si l’ai azzeccato, pero tu hai suggerito di sostituire l’esistente include che forse farebbe altri problemi per le classi che si trovano in quel folder (components) invece di sostituire si deve agiungere l’include per ill components/dataproviders ;)

quando hai ragione hai ragione … :P

Grazie a tutti, ho chiara la situazione ora ! :)