下面是代碼,有一句沒問題,只要加上 排序 和限制,就報錯?求教為什麼?
$stmt=D('classOne');$db = $stmt->where("id>10")->select(); //這句完全沒有問題,$db =$stmt->where("id>10")->order('id desc')->limit(1)->select(); //這句完出錯了?為什麼?echo '';print_r($db);echo '
';
:(Call to a member function limit() on null錯誤位置FILE: C:\AppServ\www\yb1\yangbins\Home\Controller\CjdController.class.php LINE: 68ThinkPHP3.2.3 { Fast & Simple OOP PHP Framework } -- [ WE CAN DO IT JUST THINK ]
以下是原因:
原來我在 classoneModel.class.php 裡多了個:
function __call($methodname, $args) { echo "這裡是 class shopModel ,你調用的方法{$methodname},參數: (".implode(" , ",$args).') 不存在....
'; }
為什麼我沒有 覆蓋 limit() 和 desc(),只是覆蓋了魔術方法,整個檔案就出錯了??
回複內容:
下面是代碼,有一句沒問題,只要加上 排序 和限制,就報錯?求教為什麼?
$stmt=D('classOne');$db = $stmt->where("id>10")->select(); //這句完全沒有問題,$db =$stmt->where("id>10")->order('id desc')->limit(1)->select(); //這句完出錯了?為什麼?echo '';print_r($db);echo '
';
:(Call to a member function limit() on null錯誤位置FILE: C:\AppServ\www\yb1\yangbins\Home\Controller\CjdController.class.php LINE: 68ThinkPHP3.2.3 { Fast & Simple OOP PHP Framework } -- [ WE CAN DO IT JUST THINK ]
以下是原因:
原來我在 classoneModel.class.php 裡多了個:
function __call($methodname, $args) { echo "這裡是 class shopModel ,你調用的方法{$methodname},參數: (".implode(" , ",$args).') 不存在....
'; }
為什麼我沒有 覆蓋 limit() 和 desc(),只是覆蓋了魔術方法,整個檔案就出錯了??
這個錯誤的原因是order()這個方法沒有返回Model類本身,在Model代碼中這是正確的,看樣子是你執行個體化的classOneModel這個模型裡繼承覆蓋了order()這個方法,並且沒有正確的處理它,請檢查其中的是不是這麼做了。