Laravel 9.19创建Markdown邮件报错:找不到Content类
问题原因及解决方法
原因
Illuminate\Mail\Mailables\Content 类是Laravel 9.26.0版本才新增的特性,你当前使用的9.19版本尚未包含这个类,所以会报类找不到的错误。
解决方案
方案1:升级Laravel版本
执行Composer命令将Laravel框架升级到9.26.0及以上版本:
composer update laravel/framework --with-all-dependencies
升级完成后,还需要修正代码里的变量错误:$this->name 未定义,应该改为 $this->user->name——因为构造函数里注入的是User实例并赋值给$this->user。
方案2:使用Laravel 9.26之前的邮件写法
如果不想升级版本,直接沿用旧的build方法写法即可,同时修正变量错误:
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use App\Models\User; class RegisteredUser extends Mailable { use Queueable, SerializesModels; protected $user; public function __construct(User $user) { $this->user = $user; } public function build() { return $this->markdown('users.register.new') ->with([ 'name' => $this->user->name, ]); } }
内容的提问来源于stack exchange,提问作者B.T
相关产品推荐
相关产品推荐

