вопрос в почте и очереди в laravel - PullRequest
0 голосов
/ 19 октября 2019

Я не могу передать данные формы на задание от контроллера в laravel

ниже - мой контроллер

public function sendmail_action(Request $request){
        try{
            $data=$request->all();
            $this->dispatch(new LeadSendmailJob($data));
            return response()->json(['status'=>'true']);
        }catch (\Exception $e){
            return response()->json(['status'=>'false','msg'=>$e->getMessage()]);
        }

    }

ниже - работа

<?php

namespace App\Jobs;

use App\Mail\LeadMail;
use Illuminate\Bus\Queueable;
use Illuminate\Http\Request;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Mail;

class LeadSendmailJob implements ShouldQueue

{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public $data;
    public function __construct(array $data)
    {
        $this->data=$data;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
      Mail::to('sdf@gmail.com')->send(new LeadMail($this->data));
    }
}

, а ниже -mail

<?php

namespace App\Mail;

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

class LeadMail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public $data;
    public function __construct(array $data)
    {
        $this->data=$data;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->markdown('frontend.emails.lead-mail')
            ->from('info@nextaussietech.com')
            ->with(['message'=>$this->data->message]);
    }
}

в таблице невыполненных заданий. Я получаю это исключение

ErrorException: при попытке получить свойство 'message' необъекта в C: \ xampp \ htdocs \ CRM \ app \Mail \ LeadMail.php: 34

работает при использовании данных модели, но не работает при передаче данных формы

1 Ответ

0 голосов
/ 19 октября 2019

$data не объект, это массив;Request::all() возвращает массив. Вы не можете получить доступ к массиву с той же нотацией, что и у объекта.

$this->data['message']; // access element of the array
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...