【问题标题】:Laravel 5.5 Cannot use object of type Illuminate\Mail\Message as arrayLaravel 5.5 不能使用 Illuminate\Mail\Message 类型的对象作为数组
【发布时间】:2018-04-12 04:24:56
【问题描述】:

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

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

我的可邮寄课程:

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 类型的对象作为数组

【问题讨论】:

  • dd($message); 查看它的成员。

标签: php laravel email laravel-5.5


【解决方案1】:

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

【讨论】:

  • 谢谢你我犯了同样的错误你的解决方案修复了它
  • @JellyBean Thanyou 为我投票
【解决方案2】:

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

首先,使用单词 object 作为变量名是不好的形式,其次您可能会在使用 Objects 和 $object 时遇到意想不到的问题。

其次,您正在引用 'message' =&gt; $object['message'] 应该在哪里 'message' =&gt; $object-&gt;message 因为 $object 变量实际上是一个 Object 而不是数组

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2019-12-11
    • 1970-01-01
    相关资源
    最近更新 更多