为了账号安全,请及时绑定邮箱和手机立即绑定

无法在从ajax发送的laravel控制器中获取数据

无法在从ajax发送的laravel控制器中获取数据

PHP
哔哔one 2023-04-28 17:10:04
我有一条路线,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:"GET",                data:{ min_price:min_price, max_price:max_price,},                success:function (data) { },            });        };这是控制器:    public function index(Request $request){    $min = $request->input('min_price');    $max = $request->input('max_price');    return view('front.pages.shop', ['products' => Product::where('status', 1)->whereBetween('price', ['min', 'max'])->latest()->paginate(15)]);}
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

显然问题是控制器没有返回正确的数据(据我所知。)


调试此类问题的第一步是检查您用于查询的参数是否实际填充。


这可以这样做: dd($min, $max)


如果 dd 函数的输出显示空值,则问题出在 ajax 请求中。如果它们已设置,您需要执行以下操作:


public function index(Request $request)

{

    $min = $request->input('min_price');

    $max = $request->input('max_price');


    $products = Product::where('status', 1)->whereBetween('price', ['min', 'max'])->latest()->paginate(15);

    dd($products);


    return view('front.pages.shop', ['products' => $products]);

}

将您的产品放在一个变量中,然后使用该变量运行 dd() 函数以查看您是否有数据。完成调试后删除 dd() 函数。


如果您有数据,问题可能出在其他地方。


注意:如果你想获取数据,你实际上应该为路由使用 GET 方法而不是使用 POST 方法。


例子:


Route::get('/shop', 'ShopController@index');

我希望这是朝着正确方向的一点推动,尝试逐步调试以找到可能存在问题的确切点。


查看完整回答
反对 回复 2023-04-28
?
HUH函数

TA贡献1836条经验 获得超4个赞

您在浏览器中收到的错误消息到底是什么?

如果问题与 CORS 相关并且您使用的是 Laravel 7,则您应该更新该config/cors.php文件以使其适用于您的项目。(例如设置'allowed_origins' => ['*'])。


查看完整回答
反对 回复 2023-04-28
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信