拉威尔5.5韩元';t使用PHP7.4呈现电子邮件

拉威尔5.5韩元';t使用PHP7.4呈现电子邮件,php,laravel,Php,Laravel,我试图在Laravel 5.5中呈现电子邮件,但无论我做什么,呈现时都会出现以下错误: ErrorException(E_NOTICE)试图访问null类型值上的数组偏移量 发生在\vendor\egulias\email validator\EmailValidator\Parser\Parser.php中 我正在运行PHP7.4,我相信PHP7.3上不会发生错误 web.php: Route::get('scratch', function(){ $mail = new Test();

我试图在Laravel 5.5中呈现电子邮件,但无论我做什么,呈现时都会出现以下错误:
ErrorException(E_NOTICE)试图访问null类型值上的数组偏移量

发生在\vendor\egulias\email validator\EmailValidator\Parser\Parser.php中

我正在运行PHP7.4,我相信PHP7.3上不会发生错误

web.php:

Route::get('scratch', function(){
  $mail = new Test();
  return $mail->render();
});
Test.php

<?php

namespace App\Mail;

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

class Test extends Mailable
{
  use Queueable, SerializesModels;

  public $subscription;

  /**
   * Create a new message instance.
   *
   * @return void
   */
  public function __construct()
  {
  }

  /**
   * Build the message.
   *
   * @return $this
   */
  public function build()
  {
    return $this->view('emails.test');
  }
}
我认为这一定是Laravel5.5和PHP7.4的问题。我可以改变我的版本,但如果可能的话我想避免。升级Laravel不适用于此应用程序


编辑

vendor\egulias\email validator\email validator\Parser\Parser.php中的这一行失败

 protected function escaped()
    {
        $previous = $this->lexer->getPrevious();
 
        if ($previous['type'] === EmailLexer::S_BACKSLASH  // here
            &&
            $this->lexer->token['type'] !== EmailLexer::GENERIC
        ) {
            return true;
        }
 
        return false;
    }

问题是
egulias/email validator
2.1.7存在PHP7.4问题。简单的
composer更新
修复了它。

问题是
egulias/email validator
2.1.7有PHP7.4问题。简单的
composer更新
修复了它。

您可以通过stacktrace查找阵列访问发生的位置吗?这应该是一个错误,所以PHP7.4没有弄错,但在过去,它会返回
null
(不是错误)@lagbox更新以显示失败位置。您尝试过调试这个问题吗?除非您通过代码可以调整从
$this->lexer->getPrevious()返回的内容
除非有更新的版本,或者您使用此软件包并调整代码以检查
null
上已经有错误报告,并且自v2.1.16以来有可用的修复程序-您使用的是哪一个?您可以通过stacktrace查找阵列访问发生的位置吗?这应该是一个错误,所以PHP7.4没有弄错,但在过去,它会返回
null
(不是错误)@lagbox更新以显示失败位置。您尝试过调试这个问题吗?除非您通过代码可以调整从
$this->lexer->getPrevious()返回的内容
除非有一个更新的版本,否则您将无法使用此软件包,或者您需要使用此软件包并调整该代码以检查
null
上已经有一个错误报告,并且自v2.1.16版开始有一个修复程序-您使用的是哪一个?我刚刚使用php-7.3修复了它。因为这个项目在共享主机上,我没有访问服务器的权限,所以我用php-7.3修复了它。因为共享主机上的项目和我没有访问服务器的权限
 protected function escaped()
    {
        $previous = $this->lexer->getPrevious();
 
        if ($previous['type'] === EmailLexer::S_BACKSLASH  // here
            &&
            $this->lexer->token['type'] !== EmailLexer::GENERIC
        ) {
            return true;
        }
 
        return false;
    }