Salve ho un dubbio che non riguarda yii ma l mvc :
faccio un esempio se dovessi creare un ipotetico db (molto semplificato) degli stati avrei una tabella con supponiamo 2 campi idStato e nomeStato , con relazione uno a molti con la tabella regioni in cui avrei idRegioni e nomeRegioni a sua volta uno a molti con idProvincia e nomeProvincia e via via andando avanti…
Il mio dubbio è , penso sia giusto creare un model per ogni tabella ,o sbaglio ? Per ogni model creerò poi un controller o un singolo controller in cui uso ( use app\models\Regioni; use app\models\Province; ecc ecc) i vari model ?
Anche se i controller potrebbero essere tutto sommato simili, io li specializzerei seguendo in pieno la logica MVC: un controller per un modello. Il vantaggio è anche questo: un controller più snello. Di conseguenza a runtime l’interprete non deve caricarsi un papiro
Avendo però tutti i controller una parte in comune , dove mettereste questa parte e come farla vedere a tutti , in un contesto fuori da yii creerei delle classi e farei un include nelle pagine in cui ho bisognodi questa parte comune per non doverla riscrivere dappertutto .Qui come faccio?
Io, nella cartella "components", creerei la classe MyController estendendola da Controller ed inserirei li le parti condivise; esattamente come fa la class Controller, estesa a sua volta dalla classe CController, per impostare il supporto "condiviso" a CMenu e Breadcrumb.
Utilizzerei quindi la classe MyController come base di estensione dei controller "simili" che piazzerei nella cartella "controllers".
Allora ho creato un a classe che chiamerò A che estende controller , e i vari controller in cui ho parti di codice in comune che estendono A , ho però il seguente errore :
Call to a member function getUniqueId() on a non-object
Sapete dove è l’errore o almeno a cosa potrebbe essere dovuto ?