Есть таблица orders в БД. Поля id, name, price, customer_id. На основе неё я создаю класс class Orders extends \yii\db\ActiveRecord {...}
Таблица orders связана с таблицей customer по полю customer_id, то есть Customer -> hasMany Orders.
Код: Выделить всё
class Customer extends \yii\db\ActiveRecord {
...
public function getOrders()
{
return $this->hasMany(Orders::className(), ['customer_id' => id']);
}
...
}
Всё круто.
А теперь случай, когда я не буду тянуть свои объекты из БД, а буду создавать их сам, вот так:
Код: Выделить всё
$customer = new Customer();
$customer->name = "Maksat";
$order = new Order();
$order->name = "Покупка 1";
$order->price = 500;
$order2 = new Order();
$order2->name = "Покупка 2";
$order->price = 700;
$customer->orders[] = $order;
$customer->orders[] = $order2;
Я пытался в обход этой ошибки объявить внутри класса Customer новое свойство Customer::myorders, вот так:
Код: Выделить всё
class Customer extends \yii\db\ActiveRecord {
public $myorders;
...
}
Код: Выделить всё
$customer->myorders[] = $order;
$customer->myorders[] = $order2;
Код: Выделить всё
json_encode ($cusotmer)
И при
Код: Выделить всё
$customer->toArray()
Тогда как мне при создании этих двух объектов связывать их между собой? Мне надо их связать, но не сохранять в базу, а потом сделать json_encode, чтобы иметь в своей json-строке все связанные объекты тоже.