我有一個訂單、產品和訂單產品模型。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 關注
- 148 瀏覽
添加回答
舉報
0/150
提交
取消