у меня 2 модели Material и Data
прописана связь
Код: Выделить всё
public function getData()
{
return $this->hasOne(Data::className(), ['id' => 'id']);
}
в логах 2 запроса
Код: Выделить всё
SELECT * FROM "pgvk_material" WHERE "pgvk_material"."id"=417974
SELECT * FROM "pgvk_data" WHERE "id"=417974
пробую ->joinWith('data')
Код: Выделить всё
SELECT "pgvk_material".*, "pgvk_data".* FROM "pgvk_material" LEFT JOIN "pgvk_data" ON "pgvk_material"."id" = "pgvk_data"."id" WHERE "pgvk_material"."id"=417974
SELECT * FROM "pgvk_data" WHERE "id"=417974
Код: Выделить всё
$material = \app\models\Material::find()
->select('"pgvk_material".*, "pgvk_data".*')
->innerJoinWith(
'data',
'pgvk_material.id = pgvk_data.id')
->where(['pgvk_material.id'=> 417974])
->one();
Код: Выделить всё
SELECT "pgvk_material".*, "pgvk_data".* FROM "pgvk_material" INNER JOIN "pgvk_data" ON "pgvk_material"."id" = "pgvk_data"."id" WHERE "pgvk_material"."id"=417974
SELECT * FROM "pgvk_data" WHERE "id"=417974