Привет. Есть ли возможность подключить к модели другие модели в связке по id?
Задача такая: Есть Магазин где имеются сформированные заказы, у заказов есть заказанный товар, у товара есть статусы.
Модель:
class Orders extends \yii\db\ActiveRecord
{
public static function tableName()
{
return 'orders';
}
public function getOrderProducts()
{
return $this->hasMany(OrderProducts::className(), ['order_id' => 'id']); // Выводит массив с товаром
}
public function getStatus()
{
return $this->hasOne(OrderStatuses::className(), ['id' => 'status_id']); // Выводит статус к order
}
}
Контроллер:
public function actionMyOrders()
{
if (!Yii::$app->user->isGuest) {
$orders = Orders::find()
->where(['user_id' => Yii::$app->user->identity['id']])
->with(['status', 'orderProducts', ])
->asArray()->all();
} else {
return Yii::$app->response->redirect(['/mart/login']);
}
return $this->render('myOrders', [
'orders' => $orders
]);
}
Вью(Дебаг):
Array
(
[0] => Array
(
[id] => 174
[invoice_order] => 2021-19-ALM-174
[payment_method_id] =>
[order_comments] =>
[billing_first_name] =>
[billing_last_name] =>
[billing_phone] =>
[billing_email] =>
[terms_field] =>
[terms] =>
[ip] => 37.99.87.214
[user_id] => 68
[status_id] => 1
[created_at] => 2021-02-19 20:33:21
[updated_at] => 2021-02-19 20:33:21
[status] => Array
(
[id] => 1
[name_status] => В обработке
[status] => 1
[created_at] =>
[updated_at] =>
)
[orderProducts] => Array
(
[0] => Array
(
[id] => 261
[order_id] => 174
[product_id] => 85
[product_name] => Название товара
[quantity] => 1
[price] => 4200
[total] => 4200
[status_id] => 1
[updated_at] => 2021-02-19 20:33:21
[created_at] => 2021-02-19 20:33:21
)
[1] => Array
(
[id] => 263
[order_id] => 174
[product_id] => 83
[product_name] => Название товара
[quantity] => 1
[price] => 600
[total] => 600
[status_id] => 1
[updated_at] => 2021-02-19 20:33:21
[created_at] => 2021-02-19 20:33:21
)
)
)
)
Как видно, связка order -> status - есть. Вот не могу добавить к товару статус.
Должно быть так...
Может у кото-то будет логика другого подхода к данной реализации, пожалуйста - посоветуйте.