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

Laravel视图未找到:邮件视图命名空间配置问题求助

解决Laravel邮件视图找不到的问题

嘿,我看你已经配置了视图命名空间,但邮件发送时还是碰上个"View [BookedMail] not found"的报错,咱们一步步捋清楚问题出在哪:

1. 先把视图加载路径给搞对

你在Provider里写的../Domain/Quotation/views大概率路径不对——Laravel的loadViewsFrom方法如果用相对路径,是基于项目根目录的,不是Provider文件所在的src/Providers目录。

换成绝对路径更靠谱,用Laravel自带的base_path辅助函数来构建:

$this->loadViewsFrom(base_path('src/Domain/Quotation/views'), 'Quotation');

2. 确认视图文件的扩展名

Laravel默认找.blade.php后缀的视图文件,你现在的视图是BookedMail.php,不是标准的blade后缀,这会导致框架找不到它。

要么把文件重命名为BookedMail.blade.php(推荐,符合Laravel规范),要么在调用时加上.php后缀:

Mail::send('Quotation::BookedMail.php', [], function ($message) use ($request) {
    $message->to($request['email'], '')->subject('Loslijst ' . date('d-m-Y'));
});

3. 清一波缓存试试

有时候Laravel会缓存视图路径配置,新注册的命名空间没生效,执行这俩命令清缓存:

php artisan view:clear
php artisan config:clear

4. 验证视图命名空间是否真的注册成功

可以临时加个路由,打印所有已注册的视图命名空间,确认你的Quotation命名空间在不在:

Route::get('/check-view-namespaces', function () {
    dd(View::getFinder()->getNamespaces());
});

访问这个路由,如果能看到Quotation对应的路径是正确的,那命名空间就注册没问题了。

5. 最后检查控制器的use语句

确保你的QuotationController里正确引入了Mail门面:

use Illuminate\Support\Facades\Mail;

别因为类没找到导致间接报错。

按这几步走,应该就能解决视图找不到的问题啦!

内容的提问来源于stack exchange,提问作者Nick Alexander

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:30:14