2016-07-05 52 views
-1
$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('[email protected]', 'ABC'); 
     $message->to($email_id)->subject("Welcome"); 
    });  
} 

我想發送郵件給各自的用戶,並在電子郵件中使用他們的名字。我得到了$email_ids$name。但是,當運行此代碼時,收到錯誤作爲獲取錯誤由於htmlentities()期望參數1是字符串,數組給定

ヶ輛()預計參數1是字符串,數組給定

當我與'user' => $email_id替換'user' => $name。我成功運行。

在發送郵件時應該像

Hello , $name(name of user) 

謝謝

+0

什麼是'$ name'價值你的代碼是什麼,你可以做'的print_r($名)'或'的var_dump($名)'。你會看到它不是根據錯誤信息的字符串。 – ymas

+0

$ name是一個數組。你不能傳遞一個數組。 –

+0

ymas ... [「ABC」,「XYZ」,「PQR」]。我得到了這些價值...... Ravi Hirani ......那麼我能做的另一種方式是什麼? –

回答

2

你的代碼應該是: -

$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('[email protected]', 'ABC'); 
     $message->to($email_id)->subject("Welcome"); 
    });  
} 

注意: - 您可以從數據庫獲取特定的列通過以下查詢表,

$users = DB::table('users')->select('name', 'email_id')->get(); 
+0

它提供了一個錯誤,因爲'不能使用類型爲stdClass的對象作爲數組' –

+0

@BhavinShah:檢查我更新的答案 –

+0

謝謝。有效。 :) –

0

Laravel在視圖文件中存在錯誤時顯示htmlentities()錯誤。

在你的情況,你在不同的,不同的陣列獲取的姓名和電子郵件,但你只的foreach $email_ids$name在這一行

Mail::send('mail', ['user' => $name ] , function ($message) use ($email_id) { 
在這個 $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('[email protected]', 'ABC'); 
     $message->to($user->email_id)->subject("Welcome"); 
    });  
} 
相關問題