Выполнение реляционного запроса


Простая выборка

// получаем запись с ID=10
$post=Post::model()->findByPk(10);
// Получаем автора записи
$author=$post->author;

Выборки с JOIN

// Все посты с авторами
$posts=Post::model()->with('author')->findAll();

// Все посты с авторами и категориями
$posts=Post::model()->with('author','categories')->findAll();

Можно сделать множественный JOIN

$posts=Post::model()->with(
    'author.profile',
    'author.posts',
    'categories')->findAll();

// или так
$criteria=new CDbCriteria;
$criteria->with=array(
    'author.profile',
    'author.posts',
    'categories',
);
$posts=Post::model()->findAll($criteria);

// или
$posts=Post::model()->findAll(array(
    'with'=>array(
        'author.profile',
        'author.posts',
        'categories',
    )
))