首页 > 解决方案 > 无法访问属性 - Laravel

问题描述

我正在尝试在 Laravel 中发送电子邮件。

我有我的可邮寄:

    public $message;

    public function __construct($message)
    {
        $this->message = $message;
    }

    public function build()
    {
        return $this->subject('Message from B&B Vintage Collectibles')->view('mail.direct');
    }

控制器:

namespace App\Http\Controllers;

use App\Contact;
use App\Mail\DirectMailable;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Http\Controllers\Controller;

class DirectController extends Controller
{
    public function __invoke(Request $request)
    {
        $user = $request->get('email');

        $message = new Contact();

        $message->body = $request->get('message');

        Mail::to($user)->send(new DirectMailable($message));

        return response()->json('Message sent', 200);
    }
}

在 direct.blade.php 我有这一行:

<p>{{ $message->body }}</p>

但是当我发送电子邮件时,我收到了这样的回复:

"Undefined property: Illuminate\Mail\Message::$body..."

我以几乎完全相同的方式设置了其他电子邮件系统,所以我无法弄清楚为什么这不起作用。

我试过没有模板,电子邮件发送得很好。

当我得到正确的字符串dd($message->body)之前。Mail::to...

在获取我的刀片文件的过程中发生了什么,我无法访问此属性?

标签: phplaravel

解决方案


正如这个线程所讨论的那样
https://laracasts.com/discuss/channels/laravel/laravel-mailable-not-working?page=1

不要使用$message变量,它会导致在 larvel 框架中发送电子邮件时出错。

您可以关注此线程以获取更多信息。


推荐阅读