首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >函数参数太少,当使用Mail时,0传入,而预期值正好为1

函数参数太少,当使用Mail时,0传入,而预期值正好为1
EN

Stack Overflow用户
提问于 2022-09-11 03:43:06
回答 1查看 55关注 0票数 1

我试着用邮件类发送一封简单的电子邮件。我已经在网上学习了这个教程,但是我仍然会收到这个错误。我不知道问题可能是什么,因为一切看起来都很好,我已经一步一步地遵循了教程。我做错了什么?

TestMail.php

代码语言:javascript
运行
复制
<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class TestMail extends Mailable
{
    use Queueable, SerializesModels;

    public $details;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($details)
    {
        $this->details = $details;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('Test Mail from Duke')->view('emails.TestMail');
    }
}

MailController

代码语言:javascript
运行
复制
<?php

namespace App\Http\Controllers;

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

class MailController extends Controller
{
    //
    public function sendEmail()
    {
        $details = [
            'title' => 'The Title',
            'body' => 'The body should be fine',
        ];
        Mail::to("sirduketylo@gmail.com")->send(new TestMail());
        return "Email Sent";
    }
}

路由

代码语言:javascript
运行
复制
<?php

use App\Http\Controllers\MailController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/send', [MailController::class, 'sendEmail']);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-11 04:02:30

TestMail对象需要在其构造函数中传递一个$details参数,但没有提供任何参数。

(MailController)

而不是:❌

代码语言:javascript
运行
复制
 Mail::to("sirduketylo@gmail.com")->send(new TestMail());

使用这个:✅

代码语言:javascript
运行
复制
 Mail::to("sirduketylo@gmail.com")->send(new TestMail($details));

附录

我想您打算将$details传递给视图。因此:

(TestMail.php)

代码语言:javascript
运行
复制
// ...

return $this
    ->subject('Test Mail from Duke')
    ->view('emails.TestMail')
    ->with("details", $this->details);

// ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73676656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档