Думаю насчет некоторых сценариев работы с AR и над удобством текущих вариантов.
Есть у нас как в примере - Order и Customer
Задачи:
1) Изменить данные для Покупателя данного заказа.
Как сейчас делаем:
Код: Выделить всё
$order = Order::findOne(6);
$order->customer->age = 22;
$order->customer->save();
2) Изменить заказу пользователя.
Сейчас делаем так (в примерах без проверок существования):
Код: Выделить всё
$order = Order::findOne(6);
$order->customer_id = Customer::findOne(['name' => 'Jack'])->id;
$order->save();
Код: Выделить всё
$order = Order::findOne(6);
Customer::findOne(['name' => 'Kate'])->link('orders', $order);
В то время когда например такой:
Код: Выделить всё
$order->customer->id = новый_id;
$order->save();
И отсутствует какая то интуитивная объектная форма для таких операции типа:
Код: Выделить всё
$order->customer = Customer::findOne(['name' => 'Jack'])
Что думаете?