[英]Mailing unique mails (Laravel)
告訴我怎么想。
我一次向多個地址發送郵件。 我形成一個視圖,它被發送到地址。 每個 email 必須包含來自 model 中所有用戶的 select 的唯一用戶名。 因此,每個用戶都應該有自己的視圖(帶有他們的名字)。
問題是 - 如何為郵件列表中的每個 email 創建一個獨特的視圖?
我不能這樣寫,因為所有用戶都會收到相同的 email 以及所有用戶名列表:
$foreach ($users as $user)
{{ $user->name }}
@endforeach
以及如何獲得每個用戶在信中獲得姓名的結果?
您需要為每個用戶單獨發送 email,將用戶數據傳遞到您創建的可郵寄 class。
<?php
namespace App\Mail;
use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class MyCustomUserMail extends Mailable
{
use Queueable, SerializesModels;
public $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function build()
{
return $this->view('emails.users.my_custom_user_view');
}
}
在您的自定義視圖中:
{{ $user->name }}
發送 email:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Mail\MyCustomUserMail;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class UserController extends Controller
{
public function doSomething()
{
$users = User::all();
$users->each(function ($user) {
Mail::to($user->email)->send(new MyCustomUserMail($user));
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.