La risposta è nel tuo link di documentazione, model()
è un metodo livello di classe, ed è:
Restituisce il modello statico della classe AR specificata. Il modello restituito è un'istanza statica della classe AR. Esso è fornito per invocare metodi a livello di classe
Diciamo che si fa (qualcosa di simile a metodi di classe statici.): $model=CActiveRecord::model('Project');
, quindi utilizzando che $model
è possibile chiamare tutti i metodi CLASSE CActiveRecord, come:
$allModels = $model->findAll(); // will give you all the models of Project
$someModel = $model->findByPk('pkValue'); // will give you the row with primary key value = pkValue
$model->deleteAll(); // will delete all the records of Project
// and so on
Edit:
anche this post nel forum dice: (differenza tra il livello di classe e statico è riunito hods)
Classe Metodi livello sono efficacemente metodi statici, ma con il vantaggio di essere in grado di utilizzare l'ereditarietà . Cioè, puoi sovrascrivere l'operazione di un metodo di livello di classe in una sottoclasse, mentre se hai usato un metodo statico non saresti in grado di sovrascriverlo. .... Quindi, in generale, dovresti usare i metodi a livello di classe, non i metodi statici, poiché ti dà il vantaggio dell'ereditarietà anche se potrebbe sembrare un po 'strano. Quindi li chiami usando $ class :: model() -> method().
fonte
2012-06-21 05:05:46
Avendo lavorato con Yii per un paio di mesi, trovo davvero strano che la classe ActiveRecord gestisca sia ActiveRecord che il modello. Mi sembra strano. –