ThinkPhp非法資料對象

來源:互聯網
上載者:User
 $data = $_POST;       $data['user_id']    = 1;       $data['create_at']  = date("Y-m-d H:i:s");       $data['update_at']  = date("Y-m-d H:i:s");       $data['is_enable']  = 1;       $data['is_visible'] = 1;       $categoryModel  = new \Admin\Model\CategoryModel();       $footPosition   = $categoryModel->getFootPosition();       $data['position']   = intval($footPosition) + 1;       // var_dump($data);    $categoryModel->add($data);

我開始以為是position類型不對,可是不論轉為string還是int,還是一樣報非法資料對象錯誤。$data['position'] = intval($footPosition) + 1;這個注釋掉插入資料就沒問題了。求助啊.

var_dump後的結果如下,看不出什麼問題啊。

array(7) { ["category_name"]=> string(12) "風言風語" ["user_id"]=> int(1) ["create_at"]=> string(19) "2015-04-05 15:39:41" ["update_at"]=> string(19) "2015-04-05 15:39:41" ["is_enable"]=> int(1) ["is_visible"]=> int(1) ["position"]=> int(2) }

資料庫欄位position,已確定不包含空格,及欄位名稱是一致的。

回複討論(解決方案)

$footPosition = $categoryModel->getFootPosition();
後,列印出 $footPosition 看看是些什麼

另外,出錯時應給出原始的錯誤資訊

問題已解決。進了ThinkPhp\Model,_facade函數,

   foreach ($data as $key=>$val){                file_put_contents("xiaobin.txt", $key."\n", FILE_APPEND) ;                file_put_contents("xiaobin.txt", $fields, FILE_APPEND);                   if(!in_array($key,$fields,true)){                       if(APP_DEBUG){                           E(L('_DATA_TYPE_INVALID_').':['.$key.'=>'.$val.']');                       }                                           unset($data[$key]);                   }elseif(is_scalar($val)) {                       // 欄位類型檢查 和 強制轉換                       $this->_parseType($data,$key);                   }               }

發現field數組結果如下:category_iduser_idcategory_nameblog_numcreate_atupdate_atis_enableis_visiblepre_positionnext_positioncategory_idArray,這些都是資料庫列名,其中pre_position,next_position是開始建表時的欄位,後來我刪了這兩列,添了position這一列。緩衝已禁用,所以清除緩衝也沒用。
最後發現這資料儲存在Runtime/Data/_fields裡,刪了就好了。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.