首页 > 解决方案 > 无法在控制器中获取从 ajax 发送的任何数据

问题描述

我有路线,

Route::post('/shop', 'ShopController@index');
Route::resource('/shop', 'ShopController')->parameters(['shop' => 'slug']);

我想通过价格范围过滤产品。

这是我的 :

filter_data();
        var sliderrange = $('#slider-range');
        var amountprice = $('#amount');
        function filter_data() {
            var  min_price = $("#min_price").val();
            var  max_price = $("#max_price").val();
            console.log(min_price);
            $.ajax({ url:"/shop", method:"POST",
                data:{ min_price:min_price, max_price:max_price,},
                success:function (data) { },
            });
        };

这是控制器:

    public function index(Request $request)
{
    $data = $request->input('min_price');
    print_r($data);

}

在视图中,这是返回一个空数组。

标签: javascriptphpmysqlajaxlaravel

解决方案


你已经调用了两个帖子方法,其中 url 是 /shop

Route::post('/shop', 'ShopController@index'); // this is method index
Route::resource('/shop', 'ShopController') //this called store method.

所以当你调用/shop方法时,它会调用 ShopController 的 store 方法。

删除Route::post('/shop', 'ShopController@index');并使用存储方法。

 public function store(Request $request)
{
    $data = $request->input('min_price');
    print_r($data);

}

推荐阅读