我是新手用户ZF,所以这未必是“正确的”,但我不得不使用DB模式这种方式没有问题。 我的目录结构是这样的:
/
--/application
----/configs
----/controllers
----/forms
----/layouts
----/models
------/DbTable
在我的应用程序/公/ index.php文件我有以下代码:
...
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('Application_');
require_once 'Zend/Loader/Autoloader/Resource.php';
$resources = new Zend_Loader_Autoloader_Resource(array(
'namespace' => 'Application',
'basePath' => APPLICATION_PATH
));
$resources->addResourceType('form','forms','Form');
$resources->addResourceType('model','models','Model');
$resources->addResourceType('dbtable','models/DbTable','Model_DbTable');
...
我的应用程序的命名空间是应用程序(如果你分不清楚) 。 我的数据库模型看起来像这样(位于应用程序/模型/ DBTABLE:
class Application_Model_DbTable_User extends Zend_Db_Table_Abstract
{
protected $_name = 'User';
protected $_primary = 'username';
}
class Application_Model_DbTable_WinLossTieScore extends Zend_Db_Table_Abstract
{
protected $_name = 'WinLossTieScore';
protected $_primary = 'id';
...
}
此外,应用程序/ CONFIGS /的application.ini的相关部分:
appnamespace = "Application"
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
尝试命名您的类Default_Model_Cachmapper,看看是否有帮助 – Alistair 2010-06-04 15:17:33
您是否正在初始化引导程序的_initAutoload()方法中的自动加载器? – Mark 2010-06-04 16:24:26
@Alistair - 我试过这个,它给出了相同的结果 @Mark - 我认为这可能是问题所在。我还没有声明_initAutoload()方法,但我的印象是你不需要......? – Guy 2010-06-04 17:39:55