[英]Laravel htmlentities() expects parameter 1 to be string, array given
[英]Getting Error as htmlentities() expects parameter 1 to be string, array given
$email_ids= DB::table('users')->pluck('email_id');
$name = DB::table('users')-> pluck('name');
foreach ($email_ids as $email_id ) {
Mail::send('mail', ['user' => $name ] , function ($message) use ($email_id) {
$message->from('abc@xyz.com', 'ABC');
$message->to($email_id)->subject("Welcome");
});
}
我想向用户发送邮件,并在邮件中标明他们的名字。 我得到数组中的$email_ids
和$name
。 但是当我运行此代码时,出现错误
htmlentities()期望参数1为字符串,给定数组
当我将'user' => $name
替换为'user' => $email_id
。 我运行成功。
当我发送邮件时,它应该像
Hello , $name(name of user)
谢谢
您的代码应为:-
$users = DB::table('users')->get(); // get all users
foreach ($users as $user ) {
$name = $user->name; // get user's name
$email_id = $user->email_id; // get user's email
Mail::send('mail', ['user' => $name ] , function ($message) use ($email_id) {
$message->from('abc@xyz.com', 'ABC');
$message->to($email_id)->subject("Welcome");
});
}
注意 :-您可以通过以下查询从数据库表中获取特定的列,
$users = DB::table('users')->select('name', 'email_id')->get();
视图文件中存在错误时,Laravel显示htmlentities()错误。
在您的情况下,您将以不同的数组形式获取名称和电子邮件,但您只$email_ids
而不是$name
在此行
Mail::send('mail', ['user' => $name ] , function ($message) use ($email_id) {
$name
是查询返回的$name
数组,您将其打印为字符串,这就是为什么会出现该错误的原因。
为了实现您想要的更改代码,如下所示
$users = DB::table('users')->select('name')->addSelect('email_id')->get()->toArray();
foreach ($users _ids as $user ) {
Mail::send('mail', ['user' => $user->name ] , function ($message) use ($user->email_id) {
$message->from('abc@xyz.com', 'ABC');
$message->to($user->email_id)->subject("Welcome");
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.