簡體   English   中英

SQLSTATE [23000]:違反完整性約束:1048列'page_id'不能為空laravel 5

[英]SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'page_id' cannot be null laravel 5

我正在使用laravel 5.2和jquery ajax

我正在處理一個應用程序,在該應用程序上我將通過ajax傳遞較大的post數據。 但是對於更大的數據,我得到這個錯誤

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');

從ajax郵政編碼中刪除dataType : 'JSON', 因為您正在將json字符串發送給不被視為單獨變量的函數。 因此,請刪除它,或先在函數中解析json,然后將其設置為vars。 還要確保您的page_id不為空。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM