我是 ZF 新手,所以这可能不是“正确的”,但我以这种方式使用 DB 模型没有任何问题。我的目录结构如下所示:
/
--/application
----/configs
----/controllers
----/forms
----/layouts
----/models
------/DbTable
在我的 application/public/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');
...
我的应用程序命名空间是应用程序(如果你不知道的话)。我的数据库模型看起来像这样(位于 application/models/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';
...
}
此外,application/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"