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
ありがとう