【发布时间】:2018-10-06 01:40:16
【问题描述】:
我有一个基本的电子邮件数组,我试图遍历这些电子邮件,以便将值分配给另一个变量以通过 Laravel 邮件发送。这是数组的转储和死亡,$emails,在 foreach 之前:
array:4 [
0 => "test@example.com"
1 => "testTwo@example.com"
2 => "testThree@example.com"
3 => "testFour@example.com"
]
foreach 是:
foreach ($emails as $email) {
$this->bcc = $email;
}
我不确定为什么会收到此错误,因为这显然是一个数组。最终我试图发送到多封电子邮件,但只是将此数组分配给可邮寄的密件抄送:
$this->bcc = $emails;
导致错误Illegal string offset 'address',尽管$this 的转储和死亡表明该数组位于bcc 属性中:
除了我对使用 Laravel 发送多封电子邮件一无所知之外,还有人看到这里的核心问题吗?干杯!
【问题讨论】:
-
我觉得您需要共享更多代码,
address不在您的代码中,但显然会导致问题。可以分享更多代码吗? -
您将一个数组放在一个对象中,因此当您解析对象时,它会找到该数组,但不会解析它,因此您需要在你目前拥有的“foreach”。但是为了避免问题,由于对象中除了数组之外还可以有一些其他类型,请检查它是否是数组。
-
@AndyHolmes,来自 Laravel 的 Mailable.php。我还不确定如何解决这个问题,但它在我的雷达上。有一个 buildRecipients 方法: foreach (['to', 'cc', 'bcc', 'replyTo'] as $type) { foreach ($this->{$type} as $recipient) { $message->{$类型}($recipient['address'], $recipient['name']); } }
-
@Rick_Jellema,谢谢,我添加了一个检查: if (is_array($emails) || is_object($emails)) { foreach ($emails as $email) { $this->bcc = $电子邮件; } }
标签: php arrays laravel email laravel-5