我正在使用laravel 5.2和jquery ajax
我正在处理一个应用程序,我通过ajax传递更大的帖子数据。但对于较大的数据,我收到此错误
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'page_id' cannot be null laravel 5
这是我试过的php.ini设置
max_input_vars = 9000
post_max_size=30M
这是我的jquery ajax代码
$.ajax({
url : url+'/ajax-saveall-Collectionpost',
type : 'POST',
data : {'posts_data':posts_data,'page_id':page_id,'page_name':page_name,'collection_id':collection_id},
dataType : 'JSON',
beforeSend: function(data) {
$("#loading").show()
},
success : function(data) {
$("#loading").hide()},
error : function(xhr, status, error) {
console.log(xhr.responseText);
}
});
这是我的laravel控制器功能
public function saveall_Collectionpost(){
$posts_data = Input::get('posts_data');
$page_id = Input::get('page_id');
$page_name = Input::get('page_name');
$collection_id = Input::get('collection_id');
if($this->user_id !== false){
foreach ($posts_data as $key => $value) {
$this->save_fav_post($page_id,$page_name,$posts_data[$key]['id'],$collection_id,$value);
}
$return['error'] = false;
}else{
$return['error'] = 'login';
}
我面临的问题是我在php控制器功能中丢失了larager数据的数据
当我print_r the data of $posts_data array
然后它只给我66个数组索引但是如果我得到我的chrome网络选项卡并检查从jquery ajax请求传递的表单数据然后该数据有115索引的数组也page_id值正在从表单数据传递到jquery ajax请求但是如果我echo the $page_id then i see no value
。
然后它意味着值被传递但是当我试图让它们像这样使用时,它们会在laravel控制器功能中丢失
$posts_data = Input::get('posts_data');
$page_id = Input::get('page_id');
答案 0 :(得分:0)
从ajax邮政编码中删除dataType : 'JSON',
。因为您正在将json字符串发送到不被视为单独变量的函数。所以删除它,或先在函数中解析你的json,然后将其设置为vars。
另外,请确保page_id
不为空。