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

Laravel控制台命令发送邮件提示视图不存在求助

Laravel控制台命令发送邮件时找不到视图的排查方案

嘿,我看到你遇到的问题了——明明确认视图路径正确,但执行控制台命令时还是抛出找不到视图的错误,这确实挺让人困惑的。不过仔细看一下错误信息,你就能发现关键所在!

你的相关代码

<?php 
foreach ($doctors_notifications_pre['seg3'] as $doctor_id => $doctor_data) { 
    DB::beginTransaction(); 
    try { 
        $this->registerMailStatus($doctor_data, $seg=3, Mails::PRE); 
        Mail::send('emails.prependantSeg3', array('item' => $doctor_data), function($message) { 
            $message->from('admin@inventedemail.com') 
                    ->to('testing@inventedemail.com') 
                    ->subject('Diabet Reseach notification'); 
        }); 
        DB::commit(); 
    } catch (Exception $e) { 
        DB::rollback(); 
    } 
} 

执行命令时的错误输出

[InvalidArgumentException] View [emails.prependantSeg1] not found.
Exception trace: () at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:137
Illuminate\View\FileViewFinder->findInPaths() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:79
Illuminate\View\FileViewFinder->find() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/View/Factory.php:165
Illuminate\View\Factory->make() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php:441
Illuminate\Mail\Mailer->getView() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php:321
Illuminate\Mail\Mailer->addContent() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php:161
Illuminate\Mail\Mailer->send() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:221
Illuminate\Support\Facades\Facade::__callStatic() at /mnt/c/Desarrollo/regueifa1.0/app/Console/Commands/SendMails.php:40
App\Console\Commands\SendMails->handle() at n/a:n/a
call_user_func_array() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/Container/Container.php:507
Illuminate\Container\Container->call() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/Console/Command.php:169
Illuminate\Console\Command->execute() at /mnt/c/Desarrollo/regueifa1.0/vendor/symfony/console/Command/Command.php:256
Symfony\Component\Console\Command\Command->run() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/Console/Command.php:155
Illuminate\Console\Command->run() at /mnt/c/Desarrollo/regueifa1.0/vendor/symfony/console/Application.php:794
Symfony\Component\Console\Application->doRunCommand() at /mnt/c/Desarrollo/regueifa1.0/vendor/symfony/console/Application.php:186
Symfony\Component\Console\Application->doRun() at /mnt/c/Desarrollo/regueifa1.0/vendor/symfony/console/Application.php:117
Symfony\Component\Console\Application->run() at /mnt/c/Desarrollo/regueifa1.0/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:107
Illuminate\Foundation\Console\Kernel->handle() at /mnt/c/Desarrollo/regueifa1.0/artisan:35 

问题根源

你仔细看错误提示里的视图名称:emails.prependantSeg1,但你现在贴出来的代码里调用的是emails.prependantSeg3!这说明你的代码中还有处理其他分段(比如seg1)的逻辑,而那部分逻辑里引用的视图文件resources/views/emails/prependantSeg1.blade.php并不存在,或者你在代码中写错了视图名称。

解决方案

  • 全局检查代码:搜索你的SendMails.php文件(或者整个项目)中所有调用Mail::send()的地方,找到引用emails.prependantSeg1的代码位置。
  • 创建缺失的视图:如果确实需要给seg1的医生发送邮件,就创建对应的视图文件resources/views/emails/prependantSeg1.blade.php,可以复制seg3的视图内容再做调整。
  • 修正笔误:如果是代码中的拼写错误(比如把Seg3写成了Seg1),直接把视图名称修正为正确的emails.prependantSeg3。
  • 检查大小写:因为你是在Linux环境下运行(路径里有/mnt/c/,应该是WSL),Linux区分文件名大小写,确认视图文件名的大小写和代码中的引用完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:04:10