1) Связи объявляются на двух концах пример:
class Customer extends ActiveRecord
{
public function getOrders()
{
return $this->hasMany(Order::className(), ['customer_id' => 'id']);
}
}
class Order extends ActiveRecord
{
public function getCustomer()
{
return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
}
}
2) Получение
связных данных
// SELECT * FROM `customer` WHERE `id` = 123
$customer = Customer::findOne(123);
// SELECT * FROM `order` WHERE `customer_id` = 123
// $orders - это массив объектов Order
$orders = $customer->orders;
3) Принцип получения массива объектов. Второй вариант для продолжения запроса типа ->where(Бла бла)
$customer->orders; // массив объектов `Order`
$customer->getOrders(); // объект ActiveQuery