【问题标题】:Laravel mail Invalid viewLaravel 邮件视图无效
【发布时间】:2017-02-07 17:22:23
【问题描述】:

我的代码中有一个命令,每天由 cron 运行,它会向所有新用户发送电子邮件。它曾经可以正常工作,但是在我将队列驱动程序切换到 SQS 并将 Laravel 5.2 升级到 5.3 之后,它开始抛出错误。

InvalidArgumentExceptionvendor/laravel/framework/src/Illuminate/Mail/Mailer.php:379
            Invalid view.

我不知道什么可能导致错误,因为我没有删除视图。此外,当我手动运行命令时,它不会引发任何错误。

这里是命令代码:

   public function handle()
    {
        $subscriptions = Purchase::where('created_at', '>=', Carbon::now()->subDay())
            ->groupBy('user_id')
            ->get();

        $bar = $this->output->createProgressBar(count($subscriptions));

        foreach ($subscriptions as $subscription) {
            $user = $subscription->user;

//           if ($user->is_active_customer) {
                Mail::to($user)->bcc(env('BCC_RECEIPTS_EMAIL'))->send(new NeedHelp());
//           }

            $bar->advance();
        }

        $bar->finish();

        $this->info("\nSuccess! " . number_format(count($subscriptions)) . ' emails were sent.');
    }

这是 NeedHelp 类代码(我已更改此线程的电子邮件和发件人名称):

<?php

namespace App\Mail;

use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class NeedHelp extends Mailable
{
    use Queueable, SerializesModels;


    /**
     * Create a new message instance.
     *
     */
    public function __construct(){

    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('Need help?')
                    ->from('default@mail.com', 'Sender')
                    ->view('emails.need-help');
    }
}

【问题讨论】:

  • 视图将从您的 NeedHelp 类中调用。你也能证明一下吗?
  • @MMMTroy 添加了 NeedHelp,但我认为其中没有任何问题,因为当我通过控制台手动运行命令时,它会正确发送所有电子邮件而不会引发异常。
  • 你可能是对的。无效的视图只是让我觉得它无法找到资源/视图/电子邮件/need-help.blade.php。您确定它保存在正确的位置吗?
  • @MMMTroy 是的,我已经检查了多次,还运行了 php artisan view:clear 以确保编译后的视图一切正确。

标签: laravel


【解决方案1】:

我发现了错误。原因是我不小心将两个应用程序连接到同一个队列,这导致它们处理彼此的作业和电子邮件,从而导致此错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2022-11-29
    • 2015-03-01
    • 2022-06-16
    • 1970-01-01
    • 2020-08-23
    • 2021-06-22
    相关资源
    最近更新 更多