ケース
Laravel 5.3の削除/取り外し最初のピボットテーブルのレコード
追加の列でCart
& Product
間のピボットテーブルを持つ:
id - cart_id - product_id - item_id (additional column)
1 - 1 - 1 - 5
2 - 1 - 1 - 6
3 - 1 - 1 - 7
4 - 2 - 1 - 8
は、通常は、ピボットテーブルのレコードを切り離します使用:
$product->carts()->detach($cartId);
しかし、この場合には、いくつかのピボットテーブルのレコードが同じcart
& product
id
である問題
私はrow 1
に削除したいとしましょう。私は仕事に望んだことは、これらのいずれかのいずれかであった
:
$product->carts()->detach($itemId);
または
$product->carts()->detach($cartId)->first();
私はcart_id
& product_id
に基づいてピボットテーブルを照会する場合は、そのクエリ結果にfirst
&実行delete()
を呼び出しますa Call to undefined method stdClass::delete()
が返されます。
私はdd()
$firstItem
データを照会した後、それが(正しい)オブジェクト
{#238 ▼
+"id": 1
+"cart_id": 1
+"product_id": 1
+"item_id": 5
}
を '$製品 - >カート() - > detach($ itemId); 'は動作するはずです。どのようなエラーが出ますか? – devk
@devkもっと見る'$ itemId'は追加列のIDですが、' cart_id'は表示されません。 –
@AlexeyMezeninああそうだ。 $ product-> carts() - >どこで( 'cart_product.item_id'、$ itemId) - > detach() 'は動作しますか?関係に ' - > withPivot(['item_id'])'があると仮定します。 – devk