如何通过ajax laravel通过数据透视表按类别显示产品?

时间:2021-02-07 02:27:43

标签: php ajax laravel

当用户点击一个类别时,它将显示该类别下的产品。我在 Laravel 中使用 Ajax 完美地做到了。它在本地主机上完美运行,但问题是,当我在服务器上上传我的项目时,它会按如下方式加载产品。例如,我有类别 1、2、3、4、5。如果我先点击 2,它会加载类别 1 的产品,然后再加载类别 2 的产品。如果我点击 3,它首先加载类别 2 的产品,然后再加载类别 3 的产品。

这里是控制器代码

public function getItemByCategory(Request $request, $id) {
    $category = FoodItemCategory::find($id);
    $products = $category->foods()->get();
    if ($request->ajax()) {
        if ($products) {
            $data = array();
            foreach ($products as $product) {
                foreach ($product->price as $price) {
                    $data[] = $price->discounted_price; // push the price to $data
                }
            }

            $data['product'] = $products;
            return response()->json(['status' => true, 'data' => $data]);
        } else {
            return response()->json(['error' => 'Opps! Somthing went wrong']);
        }
    } else {
        return view('index', compact('categories'));
    }

}

}

这里是ajax请求

function menu(id) {
      
    $.ajax({
        url: "{{ url('/items/') }}/" + id,
        method: "GET",
        contentType: false,
        cache: false,
        processData: false,
        dataType: "json",

        success: function(response) {
            if (response.status == true) {
                $("#category").empty();
                $.each(response.data.product, function(key, value) {
                $.each(value.price,function(key, amount) {
                    // var href = window.location.pathname;
                    var href = "{{ route('home') }}/";
                    $("#category").append(
                   "<div class='col-md-11 col-lg-10 col-xl-6 menu-holder left fixed'><a href='' class='menu-thumb'><img src='" +
                    href + "storage/items/food/" + value.image + "' height='80' width='80'></a>" +
                    "<div class='menu-item'><h5 class='color-fff'><a href=''></a> <span class='dots'>" +
                     value.name +"</span><span class='price'><span> ৳ </span>" + amount.discounted_price + "</span></h5><ul><li>" +
                      "<a href=''>" + value.name +"</a></li></ul></div></div>");
                      
                });

问题出在哪里?有人可以帮我吗?

0 个答案:

没有答案