无法访问属性 - Laravel

问题描述 投票:0回答:1

我正在尝试用Laravel发送邮件.

我有我的Mailable:

    public $message;

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

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

Controller:

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... 我得到了正确的字符串。

在通往我的 blade 文件的路上发生了什么,让我无法访问这个属性?

php laravel
1个回答
1
投票

正如这个主题所讨论的 https:/laracasts.comdiscusschannelslaravellaravel-mailable-not-working?page=1。

不用 $message 变量,导致在larvel框架中发送邮件时出现错误。

你可以关注这个帖子了解更多信息。


0
投票

我也曾用过同样的方法,它也能用。但我做的事情是这样的... 将实际数据传递给视图

public function build()
{
    return $this->subject('Message from B&B Vintage Collectibles')->view('mail.direct',[ 'message' => $this->message ]);
}
© www.soinside.com 2019 - 2024. All rights reserved.