[Yii 2] Crud Creato, Ma Controller Non Trovato

Ho creato il CRUD da gii (dal backend) dandogli come controller




app\controllers\GroupController



Tutto ok, difatti ha creato ‘backend\controllers\GroupController’

Quando però vado ad aprirlo




http://localhost/backend/web/index.php?r=group



mi da una eccezione

Il file esiste, ed ha come namespace




namespace app\controllers;



Qual’è il problema ?

Direi namespace errato.

Sicuro che non hai altre dir dentro la root dell’app? tipo app\backend\controllers o app\commons\controllers …?

I namespace seguono la struttura delle directories.

no, frontend e backend sono sotto la root httdocs

mi viene da chiedermi se servisse backend\controller come namespace, stasera provo.

Però se è così, aggiungo una issue a gii su github, perchè è gii ad averla creata così…

Eh appunto, se hai <root>/backend/controllers/MioController.php il namespace sarà app\backend\controllers

ok, apro una issue e poi vi so dire.

Che figura… https://github.com/yiisoft/yii2/issues/3323

Mi ha risposto Santo Qiangxue in persona…

praticamente, e giustamente, namespace è una direttiva di php, ed è ovvio che in php se scrivo




namespace app\qualcosa




cerca la cartella app.

In questo caso l’alias @app non viene risolto da yii in ‘frontend’ o in ‘backend’, invece accade che php cerca davvero la cartella app, che non esiste, e da qui l’errore.

Si in effetti davo per scontato l’alias @app che ho impostato, sorry :)

Io non utilizzo il template advanced perché è troppo articolato per l’app che sto facendo è ho una struttura “ibrida” tra basic ed advanced!

Mi sono perso qualcosa ?

Mi spiego ho appena installato yii2 ho connesso il db ho creato il mio primo model denominato Regioni ( vado nel file system ed è presente)

Vado per attivare il CRUD

Inserisco nel model ( Regioni ) il file è nominato model\regioni.php

Inserisco anche : RegioniSearch

inserisco anche : RegioniController

Faccio preview è mi si accende tutto di rosso continua a dire:

Class ‘regioni’ does not exist or has syntax error.

questo sotto al search The class name must contain fully qualified namespace name.

questo sotto al controller The class name must contain fully qualified namespace name.

Sia se scrivo regioni iniziale maiuscola o minuscola mi continua a dare lo stesso problema, ho verificato i diritti sulla cartella sono 777 quindi tutti possono fare tutto

Ma cosa devo configurare ??? per far girare il CRUD

Grazie

Se hai usato il template basic app hai inserito "app\models\Regioni" come model class?

il nome della classe deve essere un namespace completo.