我有一个订单、产品和订单产品模型。Order 与 Products 有 belongsToMany 关系,如public function products(){ return $this->belongsToMany('App\Product')->withPivot('group');}因此,用户在数据库中创建了一个订单:$order = Order::create([ 'order_id' => $payment->metadata->order_id, 'user_email' => $request ->email,]);我们还保存产品(请注意它们与订单具有相同的 order_id):foreach (Cart::content() as $item){ OrderProduct::create([ 'order_id' => $payment->metadata->order_id, 'product_id' =>$item->model->id, 'group' => $item->options->group, ]); }那么我想发送一封电子邮件,其中包含从数据库中检索到的订单信息和产品信息,这在我的 webhook 文件中,当付款支付时,会发送一封电子邮件: //Let's send an email. $order = Order::where('order_id', '=', $payment->metadata->order_id)->firstOrFail(); Mail::send (new OrderPlaced ($order));电子邮件通过输出 {{$order->order_id}} 和 {{$order->user_email}} 在我的视图中显示了所有订单信息,如 order_id 和 user_email 但是当我尝试循环时我看不到产品他们与:@foreach ($order->products as $product) {{$product->name}} @endforeach它什么也没有返回,没有错误,什么也没有。dd ($product) 什么都不返回。我在这里忽略了什么?我的想法:1. 我没有使用 id 作为主键,所以我可能需要在 belongsToMany 关系中指定第二个和第三个参数?2. Mail 之前定义的$order 变量,也许我无法通过这里获取关系?
- 2 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消