为了账号安全,请及时绑定邮箱和手机立即绑定

yii2 使用hasMay关联查询的问题

yii2 使用hasMay关联查询的问题

PHP
慕工程0101907 2019-03-06 23:52:19
$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形式的 要如何处理呢?
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

$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); 
查看完整回答
反对 回复 2019-03-18
?
哔哔one

TA贡献1854条经验 获得超8个赞

Model文件Orders.php中可以使用fields()方法的:

public function fields()
{
    $fields = parent::fields();
    $extraFields = ['user'];

    return array_merge($fields, $extraFields);
}
查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 400 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信