Название говорит все это, и вот кодLaravel 5.3. Диспетчерская работа имеет нечетную ошибку
Контроллер:
public function declineReservation($id){
$reservation=Reservation::where('id',$id)->with('user','apartment')->get()->first();
$this->dispatch(new SendMails($reservation));
$reservation->delete();
return redirect('reservations')->with('status', 'reservation declined');
}
Работа:
<?php
namespace App\Jobs;
use App\Notifications\ReservationApproved;
use App\Notifications\ReservationDeclined;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class SendMails implements ShouldQueue
{
use InteractsWithQueue, Queueable, SerializesModels;
protected $reservation;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($reservation)
{
$this->reservation=$reservation;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$user=$this->reservation->user;
if($this->reservation->status==1){
$user->notify(new ReservationApproved($this->reservation));
}
else{
$user->notify(new ReservationDeclined($this->reservation));
}
}
}
И теперь приходит забавная часть. Оговорки в методе declineReservation имеют статус, равный 0, поэтому в работу ручки они идут к другому блоку, но почта не отправляется, если я не удалить
$reservation->delete();
от метода declineReservation.
Это мой первый вопрос в стеке, поэтому я надеюсь, что вы все будете готовы помочь в этой непостоянной проблеме.