【问题标题】:How to pass data from database to Mailable?如何将数据从数据库传递到Mailable?
【发布时间】:2021-12-17 05:03:24
【问题描述】:

我知道如何将数据传递给view,但是如何将数据传递给mailable?对于将数据库调用DB::select、controller 或mailable 放在哪里,我也有点困惑?到目前为止,我已经尝试过:

web.php:

Route::get('/test-email', 'App\Http\Controllers\TestMailController@test');

TestMailController.php:

<?php

namespace App\Http\Controllers;

use App\Mail\ContactMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

class TestMailController extends Controller
{
    public function test()
    {
        return new ContactMail();
    }
}

TestMail.php:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\DB;
use phpDocumentor\Reflection\DocBlock\Tags\Var_;

class TestMail extends Mailable implements ShouldQueue
{
    use Queueable, SerializesModels;

    public $data;

    public function __construct()
    {
        $this->data = DB::select('select * from db_name');
    }

    public function build()
    {
        return $this->markdown('emails.testmail')->with('data', $data);
    }
}

【问题讨论】:

标签: laravel database email controller


【解决方案1】:

你需要使用$this:

public function build()
{
    return $this->markdown('emails.testmail')->with('data', $this->data);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多