You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel MailEclipse包报错:ChangeEmailRequest构造函数参数不足

Laravel MailEclipse 包构造函数参数缺失报错解决

Bug描述

Too few arguments to function App\Mail\ChangeEmailRequest::__construct(), 0 passed in D:\Laravel\grand\grandcalendar-api\vendor\qoraiche\laravel-mail-editor\src\MailEclipse.php on line 796 and exactly 2 expected

基于已有邮件类安装MailEclipse包后,访问对应页面触发此错误。

复现步骤

  • 安装应用
  • 访问 /maileclipse/mailables
  • 触发报错

环境版本

Laravel版本:9.19

依赖版本:

"php": "^8.0.2",
"guzzlehttp/guzzle": "^7.2",
"intervention/image": "^2.7",
"laravel/framework": "^9.19",
"laravel/horizon": "^5.14",
"laravel/sanctum": "^3.2",
"laravel/telescope": "^4.13",
"laravel/tinker": "^2.7",
"league/flysystem-aws-s3-v3": "^3.0",
"paytabscom/laravel_paytabs": "^1.4",
"predis/predis": "~1.0",
"qoraiche/laravel-mail-editor": "^4.0",
"spatie/laravel-activitylog": "^4.7",

MailEclipse包版本:4.0

问题分析与解决

原ChangeEmailRequest邮件类的构造函数要求必须传入2个参数:

<?php

namespace App\Mail;

use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Queue\SerializesModels;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Contracts\Queue\ShouldQueue;

class ChangeEmailRequest extends Mailable
{
    use Queueable, SerializesModels;

    public $otp;
    public $userName;

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

    // 其余方法省略
}

MailEclipse包在加载邮件类时会无参实例化该类,导致参数缺失报错。为构造函数参数添加默认值null即可解决问题:

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

内容的提问来源于stack exchange,提问作者Ahmed Mamdouh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:34:53