Php 关系组合了两个表数据

Php 关系组合了两个表数据,php,laravel-5,eloquent,Php,Laravel 5,Eloquent,我的数据库中有两个表Orders和OrderItems,并且Order表与OrderItems有一对多关系。。每个订单都可以有许多项目。现在我需要从OrderItems表中获取所有活动订单及其项目。例如,如果我有两个活动订单,那么我希望获得两个订单,其中包含项目。。我的意思是,我希望它们结合在一起,这样在我看来,我可以循环浏览订单,然后是订单的项目 这就是我现在恢复的方式 $user_id = Auth::User()->id; $Orders = Order::whe

我的数据库中有两个表OrdersOrderItems,并且Order表与OrderItems有一对多关系。。每个订单都可以有许多项目。现在我需要从OrderItems表中获取所有活动订单及其项目。例如,如果我有两个活动订单,那么我希望获得两个订单,其中包含项目。。我的意思是,我希望它们结合在一起,这样在我看来,我可以循环浏览订单,然后是订单的项目

这就是我现在恢复的方式

    $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;

但这样,订单中没有项目。

您不需要组合任何东西,只需获得订单即可:

 $orders = Order::where('id_email',$user_id)->where('paid',1)->get();
然后循环浏览它们并获取每个项目的项目:

foreach($orders as $order){
    $order->orderitems();
}
注意:应该在
Order
模型中定义
orderitems()
方法,如:

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

希望这能有所帮助。

您不需要组合任何东西,只需获得订单即可:

 $orders = Order::where('id_email',$user_id)->where('paid',1)->get();
然后循环浏览它们并获取每个项目的项目:

foreach($orders as $order){
    $order->orderitems();
}
注意:应该在
Order
模型中定义
orderitems()
方法,如:

public function orderitems()
{
    return $this->hasMany('OrderItem');
}
希望这有帮助