Yani burada benim denetleyicisi olduğu bir yöntemdir:
private $_tables = array();
private function _getTable($table)
{
if (!isset($this->_tables[$table])) {
include APPLICATION_PATH . '/modules/'
. $this->_request->getModuleName() . '/models/' . $table . '.php';
$this->_tables[$table] = new $table();
}
return $this->_tables[$table];
}
Ben denetleyici eylemleri bu gibi kullanıyorum:
public function pageAction()
{
$request = $this->getRequest();
$pages = $this->_getTable('Pages');
$p = $pages->getSingle($request->getParam('id'));
// increment number of views in the database
// it only gets incremented when IP is not the same
// as last viewer's IP
$pages->viewIncrement($p->id);
$this->view->headTitle($p->title
. ' - Some cool title');
$this->view->p = $p;
}
Benim PC'de test ederken localhost üzerinde harika çalışıyor. Bu da benim eski web host üzerinde çalıştı ama ben bu hatayı alıyorum bazı sayfaları görüntülerken Geçenlerde yeni bir web hosting sağlayıcısı benim ZF uygulamalar taşındı ve adres:
Method "_getTable" does not exist and was not trapped in __call()
Bu görüntülenen hepsi bu, başka bir şey yok. Bazı sayfalar olsa çalışmak ve ben tamamen kaybettim bu yüzden bazı bu hatayı gösteriyor. Ne sorun olabilir?
(Bazı sayfalar iş tamam çünkü) Tüm gerekli PHP uzantılarının kurulu ve düzgün yapılandırılmış, veritabanı bağlantısı çalışıyor. Gerçekten hiçbir fikrim yok. En az hata daha açıklayıcı olsaydı.