Javascript Can';无法在从ajax发送的laravel控制器中获取数据
我有一条路线Javascript Can';无法在从ajax发送的laravel控制器中获取数据,javascript,php,ajax,laravel,eloquent,Javascript,Php,Ajax,Laravel,Eloquent,我有一条路线 Route::post('/shop', 'ShopController@index'); Route::resource('/shop', 'ShopController')->parameters(['shop' => 'slug']); 我想通过价格范围过滤产品 这是我的: filter_data(); var sliderrange = $('#slider-range'); var amountprice = $('#amou
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)]);
}
您在浏览器中收到的错误消息是什么 如果问题与CORS有关,并且您使用的是Laravel7,那么您应该更新
config/CORS.php
文件,以便它与您的项目一起工作。(例如设置'allowed_origins'=>['*']
)
有关详细信息,请参阅。显然,问题在于控制器没有返回正确的数据(据我所知) 调试此类问题的第一步是检查用于查询的参数是否已实际填充 可以这样做:
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');
我希望这是一个正确的方向,请尝试一步一步地调试,以找到可能存在问题的确切位置。能否请您将问题更具体一些?控制器的实际功能是什么?请查看我更新的snipts。具体问题是什么?get请求有效吗?laravel是否返回了不正确的数据?请澄清问题。准确显示没有错误,但也没有显示任何产品。如果我用$data=$request->all()替换控制器中的所有代码;打印(数据);这是renderd一个空数组()。另一个问题可能是您如何定义路线的顺序。
Route::resource()
生成大量额外的路由,可能会覆盖独立的Route::post('/shop','ShopController@index');代码>。此外,我有点困惑,哪条路线应该做什么。您有一个POST-route“/shop”,它使用index
-方法,但是您使用AJAX调用/shop URL,使用GET而不是POST。在may-config文件夹中没有名为cors.php的文件,我正在使用Laravel6.18ok,我正在用URL POST更新我在ajax中的代码,但结果是一样的,没有发生任何变化@stefanzweifel@AbuBasedJibon您不是发布到ajax,而是想要获取数据。重写路线就行了