$model=new Post vs Post::model()

Post - класс CActiveRecord.

$model=new Post

Мы можем создать в таблице Post новую запись так:

$model->attributes=$_POST[‘Post’];

$model->save();

А если я напишу так:

Post::model()->attributes=$_POST[‘Post’];

Post::model()->save();

Это будет правильно ?

Вот так будет неправильно:

if(isset($_GET[‘id’]))

$record = $model->findbyPk($_GET[‘id’]);

А вот так будет правильно:

if(isset($_GET[‘id’]))

$record = Post::model()->findbyPk($_GET[‘id’]);

Объект - $model здесь конечно же принадлежит классу CActiveRecord и представляет

по методу его использования исключительно простой шаблон записи таблицы Post.

При чтение записи из таблицы этот шаблон заполняется реальным содержимым.

А вот это что за объект

$access_object = Post::parent::model() - ?

какой класс у этого объекта ?


Разумеется это все глупости и их можно было бы и самому развеять,

подняв все необходимые исходные тексты, но сил уже не хватает…

Post::model() - это сделано для обращения к методам find как к статическим. В PHP до версии 5.3 есть определенные проблемы при попытке сделать эти методы просто статическими (т.е. чтобы можно было просто писать Post::findAll()).

Спасибо.

Иными словами, тут, действительно, присутствует некоторая "искусственность"…