【发布时间】: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')->send(new OrderSuccess($id));之前先查了id,你会得到什么? -
正如我所写,我已经知道 $id 是一个字符串
-
不是字符串,是未定义的变量
-
您的代码看起来正确。您是否尝试过重新启动队列工作者?
-
@ericmp 我在之前 dd 并确保它是一个字符串: $id = $request->input('order_id');