Вставить данные в таблицу, используя очередь - PullRequest
0 голосов
/ 16 декабря 2018

Я использую функцию очереди Laravel для автоматической вставки данных в таблицу базы данных.Данные будут автоматически сохранены, если внутри таблицы нет записей.Мой первый шаг - вставить данные в таблицу, а затем только выполнить проверку.однако, мои данные не могут быть вставлены в базу данных.

Функция My Queue

public function save_sale_price_on_the_fly($job, $data)
    {
        $selling_price = array_get($data, 'price');
        $item_id = array_get($data, 'item_id');
        $payee_id = array_get($data, 'payee_id');

            DB::table('customer_products')
            ->where('product_id', '=', $item_id)
            ->where('customer_id', '=', $payee_id)
            ->where('different_price', '=', $selling_price)
            ->first();
    }

Моя модель

static::saved(function($model)
        {
            if (!$model->item_id && $model->payee_id && $model->price) {
                Queue::push('InvoiceQueue@save_sale_price_on_the_fly', $model->toArray());
            }
        });

Товар, получатель и цена возвращаются издругой стол.Я пытаюсь передать это значение 3 в мою таблицу customer_products.

1 Ответ

0 голосов
/ 16 декабря 2018

Ваша функция очереди не сохраняет никаких данных, она просто пытается извлечь данные.

Вам необходимо явно сохранить данные.

Измените ваш запрос на что-то вроде:

DB::table('customer_products')
    ->insert([
        'product_id' => $item_id,
        'customer_id' => $payee_id,
        'different_price' => $selling_price
     ]);

Документация Laravel 4 здесь: https://laravel.com/docs/4.2/queries#inserts.

...