La respuesta está en el enlace de documentación, model()
es un método de nivel de clase, y es:
Devuelve el modelo estático de la clase AR especificada. El modelo devuelto es una instancia estática de la clase AR. Se proporciona para invocar métodos de nivel de clase
Digamos que haces (algo similar a métodos estáticos de clase.): $model=CActiveRecord::model('Project');
, a continuación, utilizar ese $model
puede llamar a todos los métodos de nivel de clase de CActiveRecord, como:
$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
Editar:
también this post en el foro dice: (Diferencia entre el nivel de clase y estática se reunieron hods)
Métodos nivel de clase son efectivamente métodos estáticos, pero con la ventaja de ser capaz de utilizar herencia. Es decir, puede anular la operación de un Método de nivel de clase en una subclase, mientras que si utilizó un método estático no podría sobrescribirlo. .... Por lo tanto, en general, debe utilizar métodos de nivel de clase, no métodos estáticos, ya que le da el beneficio de la herencia, aunque podría parecer un poco extraño. Luego los llamas utilizando $ class :: model() -> method().
Después de haber trabajado con Yii durante un par de meses, me parece realmente extraño que la clase ActiveRecord maneje tanto el ActiveRecord como el modelo. Me parece extraño. –