使用队列将数据插入 table

Insert data into table using queue

我正在使用 Laravel 队列函数自动将数据插入数据库 table。如果table里面没有记录,数据会自动保存。我的第一步是能够将数据插入 table 然后只进行验证。但是,我的数据似乎无法插入数据库。

我的队列函数

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());
            }
        });

商品、收款人和价格是从另一个table返回的。我正在尝试将这 3 个值传递到我的 customer_products table.

您的队列函数没有保存任何数据,它只是试图检索数据。

您需要明确保存数据。

将您的查询更改为:

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.