【问题标题】:Zend framework data mappers and relations?Zend 框架数据映射器和关系?
【发布时间】:2011-06-14 04:01:24
【问题描述】:

如何使用数据映射器的关系?快速入门中的示例缺少一些信息,如果我正在使用关系数据,我将如何使用数据映射器。例如

(表)用户 (表)文章 (表)标签

用户 -one_to_many- 文章 -many_to_many- 标签

如果我通过数据映射器获取一位用户,那么获取相关文章和标签的最佳方式是什么?它们也应该在模型中定义吗?有什么例子或最佳实践吗?

【问题讨论】:

    标签: zend-framework datamapper


    【解决方案1】:

    如果您对这些“文章”、“用户”和“标签”中的每一个都有一个类,那么您当然可以为您的类添加额外的方法。例如,您可能有:

    
    class Article {
      public function getTags() {
        // Talk to your DAO object or table data gateway or whatever
        // and instantiate them and return an array of Tag objects 
      }
    }
    
    class User {
      public function getArticles() { }
    }
    

    或者您可以在静态网关类中实现它们,例如:

    
    class Article_Gateway {
      public static function fetchByTag( $tagName ) { }
    
      public static function fetchByUser( $userName ) { }
    }
    

    至于如何让数据行在你的模型中使用,你可以使用 Zend_Db_Table 的关系特性来做到这一点(http://framework.zend.com/manual/en/zend.db.table.relationships.html

    例如:

    
    $accountsTable = new Accounts();
    $accountsRowset = $accountsTable->find(1234);
    $user1234 = $accountsRowset->current();
    
    $bugsReportedByUser = $user1234->findDependentRowset('Bugs');
    

    【讨论】:

    • Thx 我现在理解了这个概念,虽然我发现自己只是想使用 ORM 并节省手动创建这些类型的文件的时间..
    猜你喜欢
    • 2011-11-29
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 2012-01-31
    • 2019-03-27
    • 1970-01-01
    相关资源
    最近更新 更多