gpt4 book ai didi

Laravel 5.3 - 将多个文件附加到 Mailables

转载 作者:行者123 更新时间:2023-12-03 23:24:19 25 4
gpt4 key购买 nike

如何将多个文件附加到 Laravel 5.3 可邮寄?

我可以使用 ->attach($form->filePath) 轻松地附加单个文件在我的可邮寄构建方法上。但是,一旦我将表单字段更改为数组,我就会收到以下错误:

basename() expects parameter 1 to be string, array given

我在堆栈上搜索了文档和各种搜索词,但无济于事。任何帮助将不胜感激。

构建方法:
public function build()
{
return $this->subject('Employment Application')
->attach($this->employment['portfolio_samples'])
->view('emails.employment_mailview');
}

来自 Controller 的邮件调用:
Mail::to(config('mail.from.address'))->send(new Employment($employment));

最佳答案

您应该将生成的电子邮件存储为变量,然后您可以添加多个附件,如下所示:

public function build()
{
$email = $this->view('emails.employment_mailview')->subject('Employment Application');

// $attachments is an array with file paths of attachments
foreach ($attachments as $filePath) {
$email->attach($filePath);
}

return $email;
}
在这种情况下,您的 $attachments变量应该是一个包含文件路径的数组:
$attachments = [
// first attachment
'/path/to/file1',

// second attachment
'/path/to/file2',
...
];

此外,您不仅可以通过文件路径附加文件,还可以使用 MIME 类型和所需的文件名附加文件,请参阅有关 `attachment` 方法的第二种使用情况的文档:https://laravel.com/docs/master/mail#attachments
例如,您的 $attachments数组可以是这样的:
$attachments = [
// first attachment
'path/to/file1' => [
'as' => 'file1.pdf',
'mime' => 'application/pdf',
],

// second attachment
'path/to/file12' => [
'as' => 'file2.pdf',
'mime' => 'application/pdf',
],

...
];
在您可以从这个数组附加文件之后:
// $attachments is an array with file paths of attachments
foreach ($attachments as $filePath => $fileParameters) {
$email->attach($filePath, $fileParameters);
}

关于Laravel 5.3 - 将多个文件附加到 Mailables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42848363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com