【发布时间】:2017-03-07 11:12:44
【问题描述】:
我想用 ajax 向 laravel 中的控制器发送 post 请求。 ajax 请求发送两个input 参数,我希望控制器使用第一个参数在数据库中查找列,然后使用第二个输入参数设置name 属性。但是我有这个错误消息Creating default object from empty value
Ajax function:
$('#saveUserProfile').on('click', function () {
var $finduser = $('input[name=findUser]').val();
var $name = $('input[name=userprofilename]').val();
$.ajax({
type:"POST",
url:'/code/task1/public/updateUser',
data: {
'name' : $name,
'finduser' : $finduser,
// 'email' : $email,
},
success:function(data){
$("#input1").val(data[0].name);
}
});
});
以及我的控制器中的功能
public function updateUser(Request $request){
$return_array = array();
$findUserInput = $request->get('finduser');
$user = User::where('name',$findUserInput) -> first();
$user->name = $request->get('name');
$user->save();
$data = DB::select("SELECT * FROM users where name='$findUserInput'");
if(count($data) > 0){
foreach($data as $da){
$return_array[] = $da;
}
}
return $return_array;
}
更新:我还制作了 ajax 函数和控制器,用于查找运行良好的用户。
ajax 函数:
$('#buttonFindUser').on('click', function () {
var $name = $('input[name=findUser]').val();
$.ajax({
type:"GET",
url:'/code/task1/public/findUser',
data: {
'name' : $name,
},
success:function(data){
$("#input1").val(data[0].name);
$("#input2").val(data[0].email);
$("#input3").val(data[0].created_at);
}
});
});
我的控制器中的功能:
public function findUser(Request $request){
$return_array = array();
$findUserInput = $request->get('name');
$data = DB::select("SELECT * FROM users where name='$findUserInput'");
if(count($data) > 0){
foreach($data as $da){
$return_array[] = $da;
}
}
return $return_array;
}
有什么想法吗?
【问题讨论】:
-
您收到什么错误信息?
-
usersController.php 第 117 行中的@ArminSam ErrorException:从空值创建默认对象
-
我遇到了同样的错误,请检查我的答案。这对我有帮助,如果您仍然遇到错误,请告诉我
-
您可以登录
$request->all()看看是否有输入值进入控制器。如果有你可以试试$request->input('finduser') -
@Sudhanshusharma 我仍然遇到同样的错误
标签: php ajax laravel laravel-5