Laravel 5.5 不能使用类型为 IlluminateMailMessage 的对象作为数组



我正在Laravel 5.5上构建一个应用程序,我遇到了邮件问题。我对可邮寄内容的看法:

<h3>Name: {{$message['name']}}</h3> 
<h3>Email: {{$message['email']}}</h3> 
<p>Message: {{$message['message']}}</p>

我的可邮寄课程:

namespace AppMail;
use IlluminateBusQueueable;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
use IlluminateContractsQueueShouldQueue;
use IlluminateHttpRequest;
class Contact extends Mailable
{
    use Queueable, SerializesModels;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(Request $request)
    {
        $this->object = $request;
    }
    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        $object = $this->object;
        $message = [
            'name' => $object['name'],
            'email' => $object['email'],
            'message' => $object['message']
        ];
        return $this->view('mails.contact')->with('message', $message);
    }
}

我收到错误

不能将类型为"照明\邮件\消息"的对象用作数组

消息是用于将数据信息组合到模板IlluminateMailMessage实例。将您的$message变量更改为另一个变量,它将解决您的问题。我希望它能帮助你。

检查是否将 $object 的变量名称更改为其他名称。

首先,使用单词object作为变量名称的形式很糟糕,其次,您可能会遇到$object意外的问题。

其次,您正在引用 'message' => $object['message']它应该在的位置 'message' => $object->message$object变量实际上是一个对象而不是数组

最新更新