gii

salve a tutti.

mi sto immergendo nel mondo di yii

e sto iniziando a trovare i primi problemi.

sto leggendo la guida ufficiale, e passo passo cerco di vedere gli esempi della guida,

ora sto usando gii, ho creato il model il controller e le view come dice la guida,

pero quando vado a aprire la view creata mi da errore 404.

devo configurare qualcosa ? come devo fare ?

grazie

Prova a dare piu informazioni… per esempio come vai ad aprire la view? come si chiama la tua classe, il controller e la view… e quall e l’URL che stai provando

grazie della risposta

ho seguito questa guida passo passo

http://www.yiiframework.com/doc-2.0/guide-start-gii.html

ho creato il model country

ho creato il controller country controller

poi quando creo la view ho dovuto mettere il path assoluto, c:xampp/yii/view/country

e mi crea tutte quelle view come nella guida

poi per entrare nell’index creato da gii

uso questa url: http://127.0.0.1/yii-basic-app-2.0.6/basic/web/index.php?r=country/index

mi da error 404

non capisco perche ?

incollo il codice di model control e view ?

magari c’e qualche errore ?

Prova a far meno della view… nel controller, dentro la actionIndex() prva a fare qualcosa come


echo "x";die();

giusto per vedere se e il problema con le view ho qualcosaltro.

ho provato a mettere echo "x";die();

ho messo su countryController, cioè quello creato da gii, e non succede niente mi sa sempre errore 404.

poi ho messo su siteController, cioè quello che è di default quando si installa il framework, e mi esce questo errore

PHP Parse Error – yii\base\ErrorException

syntax error, unexpected ‘echo’ (T_ECHO), expecting ‘;’ or ‘{’

quindi penso che non mi apre le view perche usa il controller sbagliato, come faccio a far usare il controller creato da gii ?

scusate queste domande banali ma è la prima volta che uso un framework e ancora devo capire come funziona.

grazie ancora per la vostra pazienza

Credevo che hai gia risolto…

se la URL ha "r=country/index" Yii dovrebbe usare il CountryController. Dal tuo scrivere sembra che in qualche modo la tua applicazione sta usando il SiteController e qui non ho nessun idea del perche.

Se segui la guida passo a passo… hai dovuto passare questa pagina - http://www.yiiframew…-databases.html

Gia qui dovevi creare il CountryController manualmente e eseguirlo con "r=country/index"… funzionava?

pensandoci sopra…

vedi se il tuo controler sia “CountryController” e non “countryController”… nel secondo caso [size=2](c minuscola)[/size][size=2] [/size][size=2] Yii non puo trovate il crontroler e per questo da l’erore 404 e per eseguirlo usa il SiteController (ErrorAction)[/size]

ciao, grazie dell’aiuto, sei stato davvero gentile

io sono nuovo sia del mondo yii che mvc quindi devo iniziare a comprendere la logica.

adesso mi funziona, perche prima avevo creato la cartella country dentro view/site, mentre si deve creare dentro view.

ti posso fare un altra domanda ?

se io creo una cartella dentro la view e la chiamo "pippo" , devo per forza creare un controller con nome PippoControllers ?

oppure posso dargli un altro nome ?

perche mi sembra di aver capito che il controller viene associato alla view attraverso il nome, quindi se io creo un intero sito dentro un unica cartella devo usare un solo controller, mentre se divido in piu cartelle devo usare piu controller ?

Pensi al rovescio… tutto comincia dall controler… dal URL si decide che controller si chiamera… in questo esempio "r=country/index" la prima parte decide il controler e la seconda parte la action… cioe il CountryController… e la action IndexAction…

se nella action usi il commando “$this->render(‘nome del view’)”… Yii cerca la view nel folder “views/controlerID” cioe se nel CountryController hai il command $this->render(‘pippo’), la view si deve trovare nel “views/country/pippo.php”

non so come ringraziarti, mi hai chiarito le idee, stavo impazzendo e non capivo,

quindi in yii, la forma delle url e sempre dominio?r=controller/view

quando io faccio una actionIndex non significa che io chiamo la index.php, ma con render(percordo file) vado a chiamare qualisai view voglio, e lo stesso vale per le altre action

forse la mia spiegazione e incasinata ma ho fatto delle prove e per ora penso di aver capito.

grazie ancora :rolleyes:

un ultima domanda, se io chiamo un controller

provaController, lui va a cercare le view nella directory

view/prova … quindi il controller deve avere il nome della directory delle view ?