Laravel 邮件:如果不为空则附上

Laravel Mail: attach if not null

我正在使用 Laravel 的可邮寄 class 发送电子邮件。如果文件存在,我想附加文件。所以我只想在文件存在的情况下添加附加参数。我可以使用 if/else 子句,但我有不同的文件,这样就不干净了。 attachIfNotNull 函数(不存在)在这种情况下会有所帮助,但也许还有其他干净的解决方案..

    public function build()
    {
        return $this->view('emails.orders.shipped')
                    ->attach('/path/to/file1', [
                        'as' => 'name.pdf',
                        'mime' => 'application/pdf',
                    ]);
    }

您可以使用 File::exists()Storage::exists():

$view = $this->view('emails.orders.shipped');
return \File::exists('/path/to/file1') ? $view
     : $view->attach('/path/to/file1', [
         'as' => 'name.pdf',
         'mime' => 'application/pdf',
     ]);