ddimonn8080
@ddimonn8080

Почему не удаляется категория товара?

Здравствуйте
В админ панели на странице редактирования товара при помощи ajax удаляю категорию которая привязана к этому товару.
app/Http/Controllers/Admin/ProductsController.php

public function deleteProductCategory(Request $request){
        if($request->ajax()){
            $product_id = (int)$request->input('product_id');
            $category_id = (int)$request->input('category_id');

            $objCategoriesRelationship = new CategoriesRelationship();
            $objCategoriesRelationship->where('object_id', $product_id)->where('category_id', $category_id)->delete();

            echo 'Success';
        }
    }

routes/web.php

Route::delete('/products/productcategory/delete', 'Admin\ProductsController@deleteProductCategory')->name('admin.products.productcategory.delete');

resources/views/admin/products/products/edit.blade.php

$('.delete-product-category').on('click', function(e){
                e.preventDefault();
                if(confirm('Вы действительно хотите удалить категорию у товара?')){
                    let product_id = $(this).attr('productId');
                    let category_id = $(this).attr('catId');

                    $.ajax({
                        type: "DELETE",
                        url: "{!! route('admin.products.productcategory.delete') !!}",
                        data: {
                            _token:"{{csrf_token()}}",
                            _token:"{{csrf_token()}}",
                            category_id: category_id,
                            object_id: product_id,
                        },
                        success: function(){
                            alert("Категория товара удалена.");
                            // location.reload();
                        }
                    });
                } else {
                    alertify.error("Действие отменено пользователем.");
                }
            });

Alert срабатывает а из базы не удаляется

В чем ошибка?

Спасибо
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
@jazzus
В зависимости от отношений
$product = Product::find($product_id);
// hasMany
$product->category->delete();
// manyToMany
$product->categories()
        ->find($category_id)
        ->delete();
// Просто удалить категорию
Category::find($id)->delete();
// Удалить категорию У товара (открепить)
$product->categories()
        ->detach($category_id);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы