Laravel Mail:为什么带有数据库数组的变量不起作用?

Laravel Mail why variable with array from database doesn't work?

提问人:Niek Neuvel 提问时间:10/27/2023 更新时间:10/27/2023 访问量:44

问:

如何将数据库中的数组添加到Laravel中的电子邮件组件中?

我的控制器:

$request = DB::table('Requests')->where('id', $id)->get();
$email = DB::table('Requests')->where('id', $id)->value('email');

 Mail::to($email)->send(new Order($request));

我的电子邮件组件 订购:

Dear {{ $request->name }}

我已经读到使用compact('request')函数添加一个数组,但这也没有用。

感谢您的帮助!

PHP Laravel 电邮

评论

0赞 DarkBee 10/27/2023
请解释一下什么不起作用?什么是输入和预期输出
0赞 ADyson 10/27/2023
没工作到底是怎么回事?错误?意想不到的结果?你做了什么调试?请明确具体

答:

1赞 Rooneyl 10/27/2023 #1

您当前的调用 using 将返回一个集合,这可能是您对数组的困惑。get()

要按原样在您的可邮寄对象中引用它,您需要集合的第一个元素(假设它被找到)。

Dear {{ $request[0]->name }}

也许尝试使用来获取单个资源。
例如
first()

$request = DB::table('Requests')->where('id', $id)->get()->first();
// or use eloquent
$request = Requests::where('id', $id)->firstOrFail();
// or if id is the primaray key
$request = Requests::find('id', $id);

以上所有内容都将为您提供单一资源。

然后,您可以将其按原样传递到您的邮件中

Mail::to($email)->send(new Order($request));

现在您正在传递一个模型对象,您可以像在可邮寄对象中一样引用它。

Dear {{ $request->name }}

评论

0赞 Niek Neuvel 10/27/2023
谢谢,我必须了解 get 和 first 之间的区别!它现在起作用了!