您如何在Zend Framework中使用关系数据库?
|
我正在使用zend框架编写应用程序,但是在使我的关系数据库模型正常工作时遇到了很多问题。我已经阅读了快速入门和文档多次,但仍不确定如何执行此操作。我张贴一张涉及不同表之间关系的图片,以避免不得不解释所有内容,因为英语不是我的母语,并且在尝试解释...复杂的事情时,我倾向于不清晰。
在名为planilla_users的表中,将表press_releases,social_networking,blog_posts,rss_feed,directorios,users和articulos都设置为外键。我以快速入门显示的方式对表模型进行了编码:
class Application_Model_DbTable_PlanillaUsers extends Zend_Db_Table_Abstract
{
protected $_name = \'planilla_users\';
protected $_referenceMap = array(
\'User\' => array(
\'columns\' => \'users_id\',
\'refTableClass\' => \'Application_Model_DbTable_Users\',
\'refColumns\' => \'id\'
),
\'Articulo\' => array(
\'columns\' => \'art_id\',
\'refTableClass\' => \'Application_Model_DbTable_Articulos\',
\'refColumns\' => \'id\'
),...etc
...其余的格式如下:
class Application_Model_DbTable_Users extends Zend_Db_Table_Abstract
{
protected $_name = \'users\';
protected $_dependentTables = array(\'Application_Model_DbTable_PlanillaUsers\');
我还有一个Planilla.php模型,其中包含所有设置程序和获取程序,用于存储/更新/检索/删除信息,但是...我完全不了解如何处理映射器。我不知道它应该如何工作,老实说,我还没有找到一个好的例子来说明如何做这样的事情。因此,任何帮助将不胜感激。
没有找到相关结果
已邀请:
1 个回复
细屠截殴些
您会在顶部看到一条线
自由是我库中的通用命名空间(请参见下面的文件夹树)。我在这里有一个Zend文件夹,可以在其中放置我的额外ZF代码,其中包括在需要时覆盖现有ZF函数的功能。自由是我的公司名称,您的显然会有所不同。此行需要更改为您公司的名称,例如
下一行是放置数据库连接设置ѭ5的位置 接下来的三行:
告诉Doctrine在何处放置生成的类,因为我使用的是模块化设置,它们分别进入我的
和
(请参阅下面的文件夹树)。 还有其他一些行需要更改,这些行不言而喻。 您还需要在application.ini的开发标题下添加以下行。
您还将需要资源文件Doctrine.php。该文件的位置取决于您的设置,我的如下。
* Doctrine.php文件如下(显然忽略* !!)
接下来,您将需要创建doctrine-cli.php文件来引导您的应用程序,该文件应位于您的库文件的根目录中(请参见上面的树),我的方法如下。
您需要更改的唯一一行是
因此它指向应用程序的根文件夹,类似于公用文件夹中index.php文件中的行。 现在希望您已经准备好生成数据库类文件。转到终端 窗口并输入以下内容。
如果一切顺利,文件夹
和
应该包含数据库的类。正如我上面提到的,不要更改Base文件夹中的文件,可以使用父Doctrine文件夹中的类进行更改。您还将注意到,Doctrine文件夹中的每个数据库表都有两个类,其中一个带有Table后缀。在这里,我倾向于放置我的DQL代码,以使其远离我的模型/控制器。其他类可用于更改基本文件夹中的类,也可以在此处添加挂钩和侦听器以添加表特定的代码,例如添加密码加密或预设日期等。 我希望我已经足够清楚地解释了这一点,因为这是工作的重中之重,但这就是我的工作方式。 我希望这有帮助。