在 Laravel 控制器中请求输入 null
Posted
技术标签:
【中文标题】在 Laravel 控制器中请求输入 null【英文标题】:Request input null in Laravel Controller 【发布时间】:2021-05-16 10:41:32 【问题描述】:您好,我在 Controller 中使用 request 获取输入值时遇到问题,它总是返回 null。这是我在 jquery 中的代码,我正在使用 Ajax 将值传递给控制器。
$('.generate').click(function()
var dstart = $("#datepickerstart").val();
var dend = $("#datepickerend").val();
//var empid = $('#empid').val();
if($('#empid').val().length == 0)
empid = 0;
else
empid = $('#empid').val();
var dStart = 0;
var dEnd = 0;
//alert(empid);
$.ajax(
type: "GET",
url: "route('manageattendance', '')"+"/"+empid,
data:$('#attendanceform').serialize(),
success: function(response)
console.log(response);
// alert("data caught");
$('.content').load('manageattendance/'+empid);
,
error: function(error)
console.log(error);
//alert("not caught ");
// alert($('#editForm').serialize());
);
//alert(dstart);
//alert(dend);
);
这是我在控制器中的代码。我正在尝试使用 request 获取数据,但是当我检查它时它返回 null 。原因是什么?请帮我。谢谢
public function index($id = 0,Request $request)
if($id == 0)
$current_date = date('Y-m-d');
$attendances = Attendance::select('Name','CheckIn','CheckOut','Note','Date','TotalHours')-
>where('Date','=',$current_date)->get();
//$start = '2021-02-10';
//$end = '2021-02-11';
//$attendances =
Attendance::select('Name','CheckIn','CheckOut','Note','Date','TotalHours')->whereBetween('Date',
[$start,$end])->get();
return view('manage.index',compact('attendances'));
else
$start = $request->input('datepickerstart');
$end = $request->input('datepickerend');
$newS = date('Y-m-d', strtotime($start));
$newE = date('Y-m-d', strtotime($end));
$sUser = User::select('name')->where('id','=',$id)->get();
//$attendances =
Attendance::select('Name','CheckIn','CheckOut','Note','Date','TotalHours')->where('user_id','=',$id)-
>get();
$attendances =
Attendance::select('Name','CheckIn','CheckOut','Note','Date','TotalHours')->whereBetween('Date',
[$start,$end])->get();
return view('manage.index',compact('attendances','sUser'));
// dd($start);
// return view('manage.index');
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
【问题讨论】:
有人吗?请帮帮我 你能分享你的路线manageattendance
吗?
【参考方案1】:
不要忘记表单中的 csrf_field 并将 id 放入 input 名称是 id
$('.generate').click(function()
var dstart = $("#datepickerstart").val();
var dend = $("#datepickerend").val();
//var empid = $('#empid').val();
if($('#empid').val().length == 0)
empid = 0;
else
empid = $('#empid').val();
var dStart = 0;
var dEnd = 0;
//alert(empid);
$.ajax(
type: "GET",
url: "route('manageattendance.update')"+"/"+empid,
data:$('#attendanceform').serialize(),
success: function(response)
console.log(response);
// alert("data caught");
$('.content').load('manageattendance/'+empid);
,
error: function(error)
console.log(error);
//alert("not caught ");
// alert($('#editForm').serialize());
);
//alert(dstart);
//alert(dend);
);
public function index(Request $request)
if(request->id == 0)
$current_date = date('Y-m-d');
$attendances = Attendance::select('Name','CheckIn','CheckOut','Note','Date','TotalHours')-
>where('Date','=',$current_date)->get();
//$start = '2021-02-10';
//$end = '2021-02-11';
//$attendances =
Attendance::select('Name','CheckIn','CheckOut','Note','Date','TotalHours')->whereBetween('Date',
[$start,$end])->get();
return view('manage.index',compact('attendances'));
else
$start = $request->input('datepickerstart');
$end = $request->input('datepickerend');
$newS = date('Y-m-d', strtotime($start));
$newE = date('Y-m-d', strtotime($end));
$sUser = User::select('name')->where('id','=',$request->id)->get();
$attendances =
Attendance::select('Name','CheckIn','CheckOut','Note','Date','TotalHours')->where('user_id','=',$request->id)->whereBetween('Date',
[$start,$end])-
>get();
return view('manage.index',compact(['attendances'=>$attendances,'sUser'=>$sUser]));
// dd($start);
【讨论】:
是的,我的表单中有 csrf_field ,但是表单内部的输入值在进入控制器时为空。 @KletoRalphFuentesSalvo ajax 代码在刀片页面或外部 js 文件中?以上是关于在 Laravel 控制器中请求输入 null的主要内容,如果未能解决你的问题,请参考以下文章