paskuale
(Pellicanipasquale)
October 13, 2012, 11:22am
1
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
mdomba
(Maurizio Domba Cerin)
October 15, 2012, 8:31am
2
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
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
paskuale
(Pellicanipasquale)
October 15, 2012, 11:59am
3
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
realtebo
(Mirkotebaldi)
October 15, 2012, 12:22pm
4
hai provato invece di
'application.modules.rights.components.*
a fare
'application.modules.rights.components.dataproviders.*
?
zaccaria
(Matteo Falsitta)
October 15, 2012, 12:25pm
5
Yii non include le sottocartelle ma solo i files, per questo non ti trova RAuthItemDataProvider (si trova nella sottocartella dataproviders)
mdomba
(Maurizio Domba Cerin)
October 15, 2012, 12:43pm
6
@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
realtebo
(Mirkotebaldi)
October 15, 2012, 1:42pm
7
quando hai ragione hai ragione …
paskuale
(Pellicanipasquale)
October 15, 2012, 6:25pm
8
Grazie a tutti, ho chiara la situazione ora !