Следующий код работает не так, как я ожидал:
public function cargar_atracciones(Request $request, $id){
if($request->ajax()){
$locales = Local::find($id);
$attractions = Attraction::take($request->get('num'))->where('local_id', $id)->where('estado', 1)->get();
$atracciones = Attraction::where('estado', 1)->where('local_id', $id)->get();
$contador = count($atracciones);
if($contador > $request->get('num')){$var = true;}else{$var = false;} //should be set to false when
// there are no more attractions to show (requested attractions >= total number of attractions in DB)
return response()->json(['attractions' => $attractions, 'locales' => $locales, 'var' => $var]);
}
Этот код взят из файла моего контроллера, он должен получить 'num' из запроса (кнопка «загрузить еще»), вытащить аттракционы из БД и отправлять данные обратно в скрипт, чтобы он мог рисовать их на http.
'var' используется для установки CSS свойства отображения кнопки «загрузить еще» на «нет», когда нет достопримечательностей осталось рисовать в БД.
Проблема в том, что 'var' всегда возвращает true, независимо от того, превышает ли переданное 'num' общее количество аттракционов в БД.
Я проверял он много раз и не мог понять.
Может ли кто-нибудь пролить свет на то, почему он так себя ведет?
РЕДАКТИРОВАТЬ:
Сравнение не работает, как ожидалось из-за $request->get('num')
, который возвращает null
Далее, dd($request->all())
возвращает:
array:1 [
"/cargar-mas-atracciones/1" => null
]
Это мой ajax запрос:
function carga_mas(id){
event.preventDefault();
// console.log(id);
$('.rotar_icono').addClass("rotate");
$num = $num + 2;
var route = site_url+'cargar-mas-atracciones/'+id;
$.ajax({
url: route,
data : {num:$num},
type : 'GET',
dataType: 'json',
contentType: 'application/json',
success : function(response){
// console.log(response);
cargar__atracciones(response);
}
});
}
Похоже, сервер игнорирует GET-данные, есть идеи?