Результат с togehter() и без разный - баг или фишка?

Чисто теоретически - все relations и условия не пишу, всё равно никто разбираться не будет :)

Просто у меня $Model::model()->with($option)->together()->findAll(); и $Model::model()->with($option)->findAll();

выдают разные данные - такое возможно?

а расскажите что за together, то в api найти немогу

Quote

link=topic=2276.msg12617#msg12617 date=1243002643]

а расскажите что за together, то в api найти немогу

http://www.yiiframew…together-detail

Quote

link=topic=2276.msg12617#msg12617 date=1243002643]

а расскажите что за together, то в api найти немогу

Из Гайда:

Quote

Начиная с версии 1.0.2, можно принудительно выполнить реляционный запрос через один SQL-запрос. Для этого просто добавьте вызов together() после with(). Например,

$posts=Post::model()->with(

    'author.profile',

    'author.posts',

    'categories')->together()->findAll();

Запрос выше будет выполнен с использованием одного SQL-запроса. Без вызова together потребуется два SQL-запроса: один связывает таблицы Post, User и Profile, а другой - таблицы User и Post.

Quote

link=topic=2276.msg12617#msg12617 date=1243002643]

а расскажите что за together, то в api найти немогу

together заставляет yii выполнять несколько запросов в одном через join

на счет разных результатов - включи логирование и посмотри какие он тебе запросы делает в одном и в другом случае… скорее всего из-за джоина у тебя теряются какие-то записи, а может и наоборот - дублирование или лишние тянуться…

возможно ошибка в условиях… надо смотреть что ты там навоял :)

Вообще это нормальная ситуация. Возникает если пользоваться dinamic relational query options, которые помимо связей из relations() указываются в with().

Пример:



Foo::model()->with(array(


'posts'=>array('order'=>'??.createTime ASC'),


'profile',


))->findAll();


Так вот, при использовании together(), который делает из нескольких запросов один, иногда возникает побочный эффект, который можно использовать для построения очень сложных запросов. Вообще по идее together() не может по определению "правильно" работать с "dinamic relational query options" как вы этого ожидаете. Но то как он это делает можно использовать например для реализации сложнейших моделей данных типа EAV(или модель Тенцера) нативными для Yii средствами.