Ciao,
ho un piccolo problemino sicuramente dovuto a qualche mancanza nel Controller, solo che non riesco a venirne a capo.
Allora vi spiego, ho creato principalmente due cartelle:
site (quella di default)
admin
Esse utilizzano un layout diverso tra loro.
Dopo aver creato il controller per la cartella admin, ho creato un CRUD per la gestione delle categorie, ho inserito questo codice nella index della cartella admin:
array('label'=>'Categorie', 'url'=>array('/admin/categorie/index'), 'visible'=>!Yii::app()->user->isGuest),
E il risultato di tutto ciò è:
The system is unable to find the requested action "categorie".
paskuale
(Pellicanipasquale)
January 14, 2012, 5:53pm
2
Non son sicuro, ma credo che:
‘url’=>array(’/controller/action’) tradotto nel tuo caso,
array('label'=>'Categorie', 'url'=>array('/admin/categorie/index'), 'visible'=>!Yii::app()->user->isGuest),
lui cercherà un AdminController con all’interno una actionCategorie . Tu hai questa struttura ?
Nel file AdminController non ho nessun actionCategorie…
sensorario
(Sensorario)
January 14, 2012, 7:27pm
4
Il layout non lo devi definire nella querystring. Il tuo problema lo conosci già:
ti manca la action categorie. In pratica dovresti creare dentro ad AdminController la action actionCategorie.
paskuale
(Pellicanipasquale)
January 14, 2012, 7:28pm
5
E prova a scrivere dentro /protected/controllers/AdminController.php
public function actionCategorie()
{
//non faccio nulla
}
e aggiorna la pagina(F5) continua a dire lo stesso errore ?
sensorario
(Sensorario)
January 14, 2012, 7:34pm
7
Perfetto!! Allora vuole dire che funziona. Infatti
public function actionCategorie()
{
//non faccio nulla
}
non fa nessun render e tu non vedi nulla. Prova a metterci una banalissima echo "EVVAI"; e vedrai che la pagina bianca esulterà :-p =)
paskuale
(Pellicanipasquale)
January 14, 2012, 7:34pm
8
giuseppelng:
Pagina bianca…
Siamo sulla buona strada … perlomeno abbiam capito qual’era il problema !
Ho provato a scrivere:
public function actionCategorie()
{
$this->render('/categorie/index');
}
E mi restituisce una exception:
AdminController cannot find the requested view "/categorie/index".
janka74
(Giancarloalbanese 74)
January 14, 2012, 7:38pm
10
ma l’hai creata la view /protected/view/categorie/index.php ?
paskuale
(Pellicanipasquale)
January 14, 2012, 7:38pm
11
modifica in:
public function actionCategorie()
{
$this->render('index');
}
basta il nome della View,
lui cercherà all’interno di /protected/views/admin/ il file index.php
C’è qualcosa che non va, ho scritto:
public function actionCategorie()
{
$this->render('index');
}
Mi fa il render della index della cartella admin:
admin/categorie
You may change the content of this page by modifying the file /var/www/test/protected/views/admin/index.php.
La view si trova in:
protected/views/admin/categorie/
sensorario
(Sensorario)
January 14, 2012, 7:44pm
13
Prova con $this->render(’//admin/categorie/index’);
Una domanda. Ma come mai si trova in quella posizione quel file? Come stai sviluppando questa applicazione. A mano oppure usi gii o yiic via console?
Ho risolto con:
$dataProvider=new CActiveDataProvider('Categorie');
$this->render('//admin/categorie/index',array(
'dataProvider'=>$dataProvider,
));
Uso gii, e gli ho passato come nome del controller: admin/categorie.
Mi sorge un dubbio, se io voglio implementare anche il create, update, etc…come devo fare?
paskuale
(Pellicanipasquale)
January 15, 2012, 1:42am
16
Se usi gii (http://localhost/tua_applicazione/index.php?r=gii ) avrai la vita più facile, quando crei un Model e rispettivo Controller farà tutto lui.
sensorario
(Sensorario)
January 15, 2012, 2:24am
17
Se vai avanti a creare controller chiamandoli ciao/mondo … non lo so. Mi dispiace ma quello non è yii. Nel tuo modo devi rinominare mezzo mondo.
Scusate forse mi sono espresso male…allora “Categorie” l’ho creato con gii, quello che volevo dire io è: se io voglio inserire i link per le altre action di categorie (tipo create,delete,etc) in index.php della cartella admin come gestisco il controller? Dato che c’è già un actionCategorie…
sensorario
(Sensorario)
January 16, 2012, 5:23am
19
Dove si trova actionCategorie?