Чисто теоретически - все relations и условия не пишу, всё равно никто разбираться не будет
Просто у меня $Model::model()->with($option)->together()->findAll(); и $Model::model()->with($option)->findAll();
выдают разные данные - такое возможно?
Чисто теоретически - все relations и условия не пишу, всё равно никто разбираться не будет
Просто у меня $Model::model()->with($option)->together()->findAll(); и $Model::model()->with($option)->findAll();
выдают разные данные - такое возможно?
а расскажите что за together, то в api найти немогу
Quote
а расскажите что за together, то в api найти немогу
Quote
а расскажите что за together, то в api найти немогу
Из Гайда:
Quote
$posts=Post::model()->with(
'author.profile',
'author.posts',
'categories')->together()->findAll();
Запрос выше будет выполнен с использованием одного SQL-запроса. Без вызова together потребуется два SQL-запроса: один связывает таблицы Post, User и Profile, а другой - таблицы User и Post.
Quote
а расскажите что за 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 средствами.