【问题标题】:Laravel 9 - ErrorException: Undefined variable $order_id while sending mailLaravel 9 - 错误异常:发送邮件时未定义变量 $order_id
【发布时间】:2022-11-04 20:04:44
【问题描述】:

您好,在我的 laravel 应用程序中,当订单完成时,我有一段时间会收到邮件通知用户。

` 在我的控制器中,我有:

Mail::to('test@mail')->send(new OrderSuccess($id));

// $id is a string

在 mail.php 中

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class OrderSuccess extends Mailable implements ShouldQueue
{
    use Queueable, SerializesModels;

    public $order_id;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($order_id)
    {
        $this->order_id = $order_id;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('mails.ordermail')
                    ->with([
                        'order_id' => $this->order_id
                    ]);
    }
}

在邮件刀片模板中:

Test order n. {{ $order_id }}

但是我得到了一个显示此错误的失败工作

ErrorException:C:\Users 中未定义的变量 $order_id...

我究竟做错了什么?

`

【问题讨论】:

  • 如果你在打电话给Mail::to('m.miscischia@buffetti.it')-&gt;send(new OrderSuccess($id)); 之前先查了id,你会得到什么?
  • 正如我所写,我已经知道 $id 是一个字符串
  • 不是字符串,是未定义的变量
  • 您的代码看起来正确。您是否尝试过重新启动队列工作者?
  • @ericmp 我在之前 dd 并确保它是一个字符串: $id = $request->input('order_id');

标签: php laravel


【解决方案1】:

您的代码看起来正确。尝试重新启动您的队列工作者。

队列工作者是长期存在的进程,并将启动的应用程序状态存储在内存中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 2016-05-06
    • 2023-02-21
    • 2014-12-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    相关资源
    最近更新 更多