Size: a a a

2021 May 14

D

DarkDef in Yii Framework 3
$orderQuery = new ActiveQuery(Order::class, $this->db);
       echo $orderQuery->joinWith('books2')->createCommand()->getRawSql();
источник

D

DarkDef in Yii Framework 3
Вроде бы то что вам надо
источник

D

DarkDef in Yii Framework 3
@InsolitaSecret - единственное, я конечно условие через строку делаю без использования билдера
источник

IS

Insolita Secret in Yii Framework 3
@darkdef_pr   Sql получаетя нормальный, фейлится выполнение
SELECT "documents".* FROM "documents" LEFT JOIN "documents" "dup" ON ("documents"."filehash" = "dup"."filehash" AND "documents"."company_id" = "dup"."company_id") AND ("dup"."id" != "documents"."id")

Если
запрос этот просто в  sql консоли запустить - он нормальный результат выдаст
источник

D

DarkDef in Yii Framework 3
Покажите именно с этим запросом ошибку, визуально всё норм
источник

D

DarkDef in Yii Framework 3
Может он для from тоже алиас просит )
источник

D

DarkDef in Yii Framework 3
$orderQuery->joinWith('books2')->alias('document')->createCommand()->getRawSql();
источник

D

DarkDef in Yii Framework 3
Ну алиас документ в вашем случае
источник

D

DarkDef in Yii Framework 3
Блин
источник

D

DarkDef in Yii Framework 3
Он же у вас есть:
Document::find()->alias('documents')
   ->where(['documents.company_id' => $company->id])->joinWith('duplicates')->limit(3)->all();
источник

IS

Insolita Secret in Yii Framework 3
(new ActiveQuery(Document::class))->joinWith('duplicates')->createCommand()->getRawSql();   - выведет правильный sql

 (new ActiveQuery(Document::class))->joinWith('duplicates')->all();   —- падает с ошибкой Undefined table: 7 ERROR: invalid reference to FROM-clause entry for table "documents"
источник

IS

Insolita Secret in Yii Framework 3
источник

D

DarkDef in Yii Framework 3
Так, а с алиасами то что-то не то получается
источник

D

DarkDef in Yii Framework 3
Финальный запрос правильный, но ошибка то не в нём
источник

D

DarkDef in Yii Framework 3
А в предварительной выборке какой-то
источник

D

DarkDef in Yii Framework 3
источник

IS

Insolita Secret in Yii Framework 3
да, если запустить (new ActiveQuery(Document::class))->joinWith('duplicates')->createCommand()->queryAll(); - запрос выполнится нормально
источник

T

TradersVE in Yii Framework 3
the find() method no longer exists in ActiveRecord.
источник

IS

Insolita Secret in Yii Framework 3
Фейл идёт в  ActiveQuery populate , вызывается findWith запрос где alias documents не детектится
Потому как для значений в link  связи оно пдставляет конкретные значения из найденного, а в onCondition не умеет подставлять
источник

IS

Insolita Secret in Yii Framework 3
A link умеет только условия равенства
источник