Laravel очередь для хранения данных - PullRequest
0 голосов
/ 11 июня 2018

Я хочу попытаться сохранить данные в базе данных через очередь базы данных Laravel.

Но я всегда получаю эту ошибку "Неопределенное смещение: 0"

Это мой контроллер:

    public function store(Request $request)
    {
        $order = new Order;
        $order->code = $request->code;
        $order->created_at = $request->created_at;

        $this->dispatch(new SalesOrder($order));
    }

и это мои вакансии в SalesOrder:

    protected $order;

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


    public function handle()
    {
         $this->order->save();
    }

что-то не так в моем коде?Пожалуйста, кто-нибудь, помогите мне решить эту проблему.В любом случае, чем.

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Вместо передачи Объект заказа передается в данных заказа на работу, а в порядке сохранения работы.

Код контроллера.

public function store(Request $request)
{
    $data['code'] = $request->code;
    $data['created_at'] = $request->created_at;

    $this->dispatch(new SalesOrder($data));
}

Код задания

protected $data;

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


public function handle(Order $order)
{
    if (!$order->craete($this->data)) {
        // when not saved try again
        $this->release();
    }

    return true;
}
0 голосов
/ 11 июня 2018

Попробуйте запустить

$order = new Order;
$order->code = $request->code;
$order->created_at = $request->created_at;

внутри вашей работы, чтобы она выглядела так

protected $order;
protected $request

public function __construct($request)
{
  $this->order = new Order;
  $this->request = $request;
}


public function handle()
{
  $this->order->code = $request->code;
  $this->order->created_at = $request->created_at;
  $this->order->save();
}

и в вашем контроллере

public function store(Request $request)
{
   $this->dispatch(new SalesOrder($request));
}

Это должно работать.Не проверял это пишу на моем телефоне.

...