【问题标题】:Relationships combine two table data关系结合两个表数据
【发布时间】:2018-01-18 00:41:35
【问题描述】:

我的数据库中有两个表 OrdersOrderItems 并且 Order 表与 OrderItems 有一对多关系。每个订单可以有很多项目。现在我需要从 OrderItems 表中获取所有活动订单及其项目。例如,如果我有 2 个活动订单,那么我想获得两个带有项目的订单。我的意思是我希望它们结合起来,所以在我看来,我可以遍历订单,然后是该订单的项目。

这就是我现在检索的方式

    $user_id = Auth::User()->id;

    $Orders  = Order::where([['id_email', '=', $user_id],['paid', '=', 1],])->get();

    $items   = Order::where([['id_email', '=', $user_id],['paid', '=', 1],])->orderitems;

但是这种方式订单里面没有物品。

【问题讨论】:

    标签: php laravel-5 eloquent


    【解决方案1】:

    你不需要组合任何东西,你可以简单地得到订单:

     $orders = Order::where('id_email',$user_id)->where('paid',1)->get();
    

    然后遍历它们并获取每一个的项目:

    foreach($orders as $order){
        $order->orderitems();
    }
    

    注意:orderitems() 方法应该在 Order 模型中定义,例如:

    public function orderitems()
    {
        return $this->hasMany('OrderItem');
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2019-07-06
      • 2018-12-11
      相关资源
      最近更新 更多