我有一個非常奇怪的事情在這裏進行。我檢查AppController的beforeFilter()函數,是否存在id。它在我打開url/project/user/1時工作,但當我打開/ project/user/edit/1時,它說我在非對象上使用了一個函數。我已經檢查過我是否真的這樣做,但我沒有。我用pr()輸出值,它顯示對象內容。呼叫非對象的成員函數,雖然對象存在
這裏是我的beforeFilter()函數:
$request = $this->request;
if (isset($request->params['id'])) {
$model = Inflector::singularize(ucfirst($request->params['controller']));
$cond = array('conditions' => array($model . '.id' => $request->params['id']));
pr($this->{$model});
exit;
if (!$this->{$model}->find('first', $cond)) {
$this->Session->setFlash(__('Invalid id.'), 'flash_notice');
$this->redirect(array(
'manager' => (bool)$request->params['manager'],
'controller' => 'tournaments',
'action' => 'index'
));
}
}
$模型的輸出,該ID條件被執行之前,包含對象數據,是absolutley正確。我沒有看到問題:/
你能幫助我嗎?
謝謝。
什麼功能?什麼對象('var_dump()'它)?什麼線? –
什麼是確切的錯誤信息? – deceze
如果錯誤消息說它是非對象,那麼它是。 – xdazz