簡體   English   中英

郵寄獨特的郵件(Laravel)

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM