1

Laravel 5.3を使ってアイテムを持ったeコマースカートを開発しています。したがって、カートとアイテムは 1:n の関係にあります。

製品をカートに追加してもIlluminate\Database\Eloquent\Relations\HasOneOrMany::save()、新しいアイテムがコレクションにプッシュされないため、メソッド$cart->itemsを使用して手動で行う必要があります。Collection::push()

メソッドがそれを行うため、これを尋ねているため、Illuminate\Database\Eloquent\Relations\BelongsTo::associate()これがバグであるかどうかはわかりません。

理解を深めるために:

次に、これを行う必要があります。

$cart = Cart::first();

$cartItem = new CartItem();
$cartItem->quantity = 1;
$cartItem->base_price = 1;
$cartItem->paid_price = 1;

$cart->items()->save($cartItem);
print($cart->items->count()); # returns 0
$cart->items->push($cartItem);
print($cart->items->count()); # returns 1

やりたいことは上記のコードで、他のメソッドを呼び出さずにリストを操作できるようにします (たとえば、注文値の更新)。

$cart = Cart::first();

$cartItem = new CartItem();
$cartItem->quantity = 1;
$cartItem->base_price = 1;
$cartItem->paid_price = 1;

$cart->items()->save($cartItem);
print($cart->items->count()); # returns 1

コードを見て実行できるので、プル リクエストを作成することを考えています。しかし、それは正しいですか?私たちはそれを行うことができますか?

ここから複製: https://github.com/laravel/framework/issues/14719

ありがとう

4

1 に答える 1