繁体   English   中英

由于htmlentities()期望参数1为字符串,给定数组,因此出现错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM