Объект класса Illuminate\Mail\Message не может быть преобразован в строку

Я использую Laravel 5.5, пытаясь отправить электронное письмо, но получаю сообщение об ошибке

Объект класса Illuminate\Mail\Message не может быть преобразован в строку

вот мой контроллер

public function contactreply($contact, Request $request){
    $reply = new Reply;
    $reply->subject = $request->subject;
    $reply->message = $request->message;
    $reply->email = $contact;
    $reply->save();
    $mail = Mail::to($contact)->send(new ContactReply($reply));
    return Redirect::back()->with('status', 'Email Sent Success');
}

вот мой ContactReply.php

<?php

namespace App\Mail;

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

class ContactReply extends Mailable
{
    use Queueable, SerializesModels;

    protected $reply;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($reply)
    {
       $this->reply = $reply; //dd($reply) passing all value here
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('admin.contact.reply')
                    ->subject($this->reply->subject)
                     ->with([
                        'message' => $this->reply->message,
                    ]);
    }
}

мой файл просмотра

<div>
  {!! Markdown::parse($message) !!}<!-- Using Markdown Package -->
</div>

Я думаю, что что-то упустил, потому что я сделал то же самое в своем старом проекте, и он работает нормально.


person sid heart    schedule 06.10.2017    source источник
comment
Пожалуйста, прочитайте При каких обстоятельствах я могу добавить «срочно» или другие подобные фразы к моему вопросу, чтобы получить более быстрые ответы? - Подводя итог, можно сказать, что это не идеальный способ обращения к волонтерам и, вероятно, контрпродуктивно для получения ответов. Пожалуйста, воздержитесь от добавления этого к своим вопросам.   -  person halfer    schedule 06.10.2017


Ответы (3)


я не знаю, почему это ошибка laravel, но $message занесено в черный список для почты при просмотре
, когда я попытался {{ $message }} получить ошибку и не отправить сообщение
когда я изменил $message на любое имя, например {{ $content }}, все работает нормально да, теперь все работает нормально, спасибо за вклад

person sid heart    schedule 06.10.2017
comment
Это было проблемой и для меня. Вы могли бы найти это где-нибудь в документации? - person marijnz0r; 19.02.2018
comment
Нашел и сделал из этого ответ! - person marijnz0r; 19.02.2018
comment
Спасибо @sid, да, есть проблема с {{$message}} в версии laravel 5.7. Я изменил имя переменной на другое и попробовал. Это сработало для меня. Спасибо еще раз. Спас мою жизнь :) - person Kamlesh; 10.07.2020


Измените имя ввода сообщения в контроллере контактов

$input = $request-›все();

    Contact::create($input);


     \Mail::send('contact.contactMail', array(
        'name' => $input['name'],
        'email' => $input['email'],
        'phone' => $input['phone'],
        'subject' => $input['subject'],
        'message' => $input['message'], // change in this line

к этому -->

$input = $request-›все();

    Contact::create($input);


     \Mail::send('contact.contactMail', array(
        'name' => $input['name'],
        'email' => $input['email'],
        'phone' => $input['phone'],
        'subject' => $input['subject'],
        'form_message' => $input['message'], //after change it will work
person Sonal Kumawat    schedule 27.05.2021