猿问

yii2 使用hasMay关联查询的问题

 $order = Orders::find()
        ->where(['order_sn' => $order_sn, 'user_id' => Yii::$app->user->identity->id])
        ->all();
        



{
"success": true,
"code": 200,
"message": "OK",
"data": [
    {
        "id": "658",
        "order_sn": "201811088879168432",
        "user_id": "290",
        "order_status": 15,
        "shipping_id": 0,
        "shipping_name": "",
        "pay_id": 0,
        "pay_name": "",
        "goods_amount": "1067.00",
        "user_discount": 100,
        "shipping_fee": "0.00",
        "pay_fee": "0.00",
        "integral_money": "0.00",
        "coupon_id": "0",
        "coupon": "0.00",
        "order_amount": "1067.00",
        "created_at": "1541658432",
        "pay_time": "0",
        "shipping_time": "0",
        "finish_time": "0",
        "shipping_no": "",
        "pay_note": "",
        "ip_address": "127.0.0.1",
        "region_id": 12,
        "coupon_code_id": null,
        "discount_amount": null
    }
]

}

ordes关联了多个表但是查询的json数据中只有order表的数据

之前在视图中如果想查询出关联数据 就使用结果集再次调用就行了 例如:$orders->user->email;
但是现在是api形式的 要如何处理呢?

慕工程0101907
浏览 401回答 2
2回答

汪汪一只猫

$order = Orders::find() ->where(['order_sn' => $order_sn, 'user_id' => Yii::$app->user->identity->id]) ->all(); $data = []; foreach ($order as $k => $val) { $data[] = [ 'id' => $val->id, 'order_sn' => $val->order_sn, 'user_email' => $val->user->email, ... ]; } return json_encode($data);

哔哔one

Model文件Orders.php中可以使用fields()方法的: public function fields() { $fields = parent::fields(); $extraFields = ['user']; return array_merge($fields, $extraFields); }
随时随地看视频慕课网APP
我要回答