提问人:Niek Neuvel 提问时间:10/27/2023 更新时间:10/27/2023 访问量:44
Laravel Mail:为什么带有数据库数组的变量不起作用?
Laravel Mail why variable with array from database doesn't work?
问:
如何将数据库中的数组添加到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')函数添加一个数组,但这也没有用。
感谢您的帮助!
答:
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 之间的区别!它现在起作用了!
评论