Case
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()
будет возвращен
$firstItem = DB::table('cart_product')
->where('cart_id', $cart_id)
->where('product_id', $product->id)
->first();
$firstItem->delete();
Хотя, когда я dd()
$firstItem
после запроса данных, он будет возвращать (правильный) объект
{#238 ▼
+"id": 1
+"cart_id": 1
+"product_id": 1
+"item_id": 5
}
Из моего понимания и опыта '$ продукт-> тележки() -> detach ($ itemId); 'должен работать. Какая ошибка вы получаете? – devk
@devk посмотреть ближе. '$ itemId' является идентификатором дополнительного столбца, но не' cart_id'. –
@AlexeyMezenin О, я вижу. Не следует ли '$ product-> carts() -> где ('cart_product.item_id', $ itemId) -> detach()' работать хотя? Предполагая, что существует '-> withPivot (['item_id'])' в отношении. – devk