Laravel 5.5不能使用Illuminate \ Mail \ Message类型的对象作为数组

时间:2017-10-31 04:35:55

标签: php laravel email laravel-5.5

我正在Laravel 5.5上构建一个应用程序,我正面临着邮件的困难。 我对可邮寄的看法:

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

我的mailable课程:     

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Http\Request;

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);
    }
}

我收到错误

  

不能使用Illuminate \ Mail \ Message类型的对象作为数组

2 个答案:

答案 0 :(得分:1)

消息是Illuminate\Mail\Message的实例,用于将数据信息组合到模板中。 将您的$message变量更改为另一个变量,它将解决您的问题。 我希望它会对你有所帮助。

答案 1 :(得分:0)

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

首先使用word对象作为变量名称是不好的形式,其次你可能遇到对象和$ object的意外问题。

其次你在引用 'message' => $object['message']它应该在哪里 'message' => $object->message作为$ object变量实际上是一个Object而不是一个数组