вот справка из документации
Код: Выделить всё
// eager loading both "orders" and "country"
$customers = Customer::find()->with('orders', 'country')->all();
// equivalent to the array syntax below
$customers = Customer::find()->with(['orders', 'country'])->all();
// no SQL executed
$orders= $customers[0]->orders;
// no SQL executed
$country = $customers[0]->country;
Код: Выделить всё
class Material extends \yii\db\ActiveRecord
{
public function getData()
{
return $this->hasOne(Data::className(), ['id' => 'id']);
}
public function getUrl()
{
return $this->hasOne(Url::className(), ['id' => 'id']);
}
}
делал и так
Код: Выделить всё
Material::find()->joinWith(['data','url'])->where(['"pgvk"."pgvk_material".id' => $id])->all(),
Код: Выделить всё
Material::find()->with(['data','url'])->where(['"pgvk"."pgvk_material".id' => $id])->all(),
Код: Выделить всё
19 19:53:25.489 10.1 ms SELECT SELECT "pgvk"."pgvk_material".* FROM "pgvk"."pgvk_material" LEFT JOIN "pgvk"."pgvk_data" ON "pgvk"."pgvk_material"."id" = "pgvk"."pgvk_data"."id" LEFT JOIN "pgvk"."pgvk_url" ON "pgvk"."pgvk_material"."id" = "pgvk"."pgvk_url"."id" WHERE "pgvk"."pgvk_material"."id"='154784'
/home/rus/yii/basic/controllers/MaterialController.php (55)
25 19:56:12.658 6.9 ms SELECT SELECT * FROM "pgvk"."pgvk_url" WHERE "id"=154784
/home/rus/yii/basic/controllers/MaterialController.php (55)