Laravel 5.8发送邮件报“Invalid view”错误求助
解决Laravel发送邮件时的"Invalid view"报错问题
我来帮你排查下这个问题,看起来你在发送邮件的代码里犯了几个小错误,这才导致了视图找不到的报错,咱们一步步来修正:
1. 修正控制器中的邮件发送代码
你当前的发送代码:
Mail::send($request->user())->queue(new PropertyAsk());
这里有两个明显的问题:
Mail::send()是直接传入视图路径的用法,而你使用的是Mailable类(通过php artisan make:mail UserEmail生成的),正确的调用方式应该是用Mail::to()指定收件人,再传入你的Mailable实例。- 你生成的Mailable类是
UserEmail,但代码里却用了PropertyAsk,这明显不匹配。
正确的代码应该改为:
// 队列发送(推荐方式) Mail::to($request->user())->queue(new \App\Mail\UserEmail()); // 或者同步发送(不推荐在请求流程中使用,会阻塞响应) Mail::to($request->user())->send(new \App\Mail\UserEmail());
2. 再次确认Mailable类的视图配置
你的UserEmail类的build()方法是对的:
public function build() { return $this->from('some email')->view('emails.user'); }
view('emails.user')对应的正是你创建的resources/views/emails/user.blade.php,这部分没问题,只要上面的发送代码正确,Laravel就能找到这个视图。
3. 清除视图缓存(可选操作)
如果上面的修正后还是报错,可能是视图缓存导致的奇怪问题,运行以下命令清除视图缓存:
php artisan view:clear
完成这些步骤后,重新测试邮件发送,应该就能解决"Invalid view"的问题了。
内容的提问来源于stack exchange,提问作者gdfgdfg
相关产品推荐
相关产品推荐

