gpt4 book ai didi

php - 具有两个主键更新的 Laravel 模型

转载 作者:IT王子 更新时间:2023-10-28 23:48:47 26 4
gpt4 key购买 nike

<分区>

我正在尝试更新具有两个主键的模型。

模型

namespace App;

use Illuminate\Database\Eloquent\Model;

class Inventory extends Model
{
/**
* The table associated with the model.
*/
protected $table = 'inventories';

/**
* Indicates model primary keys.
*/
protected $primaryKey = ['user_id', 'stock_id'];
...

迁移

Schema::create('inventories', function (Blueprint $table) {
$table->integer('user_id')->unsigned();
$table->integer('stock_id')->unsigned();
$table->bigInteger('quantity');

$table->primary(['user_id', 'stock_id']);

$table->foreign('user_id')->references('id')->on('users')
->onUpdate('restrict')
->onDelete('cascade');
$table->foreign('stock_id')->references('id')->on('stocks')
->onUpdate('restrict')
->onDelete('cascade');
});

这是应该更新 Inventory 模型的代码,但它没有。

$inventory = Inventory::where('user_id', $user->id)->where('stock_id', $order->stock->id)->first();
$inventory->quantity += $order->quantity;
$inventory->save();

我收到这个错误:

Illegal offset type

我还尝试使用 updateOrCreate() 方法。它不起作用(我得到同样的错误)。

谁能告诉我应该如何更新具有两个主键的模型?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com