雄辩的关系在邮件中不起作用

亚当·D

我有一个Order,Product和OrderProduct模型。订单与产品中有一个对产品的属多关系

public function products(){
        return $this->belongsToMany('App\Product')->withPivot('group');
}

因此,用户在数据库中创建了一个订单:

$order = Order::create([
                    'order_id' => $payment->metadata->order_id,
                    'user_email' => $request ->email,
]);

并且我们还保存了产品(请注意,它们具有与Order相同的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变量,也许我无法通过此处获得关系?

亚当·D

因此,我想出了这一点,也许其他人有时会遇到相同的问题:迁移中未正确设置我的外键。因此,修复外键,然后进行php artisan迁移刷新解决了此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章