Как правильно сделать select с помощью hasMany()?
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
$day = Day::findOne($dayId); //получаем day
$xxx = $day->getXxx()->all(); //получаем связанные данные