【问题标题】:Doctrine join query access problemDoctrine join 查询访问问题
【发布时间】:2011-06-30 13:10:44
【问题描述】:

我有两个表格 pages 和 page_desc 并且有一个关系

$this->hasMany('Model_PagesDesc as PageDesc', array( '本地' => 'id', '外国' => 'pages_id'));

我有一个问题

return Doctrine_Query::create()
                 ->select('m.*, d.*')
                 ->from('Model_Pages m')
                 ->leftJoin('m.PageDesc d')
                 ->execute();

现在查询执行时。当我尝试获取 SCEND 表的字段值时,它会返回一些整数而不是字段中的实际值

<?php echo $pages->PageDesc->content;?>

【问题讨论】:

    标签: zend-framework doctrine


    【解决方案1】:

    如果您使用hasMany,那么您应该Model_Pages::PagesDesc 将是Doctrine_Collection 而不是Model_PagesDesc 实例。我不确定,但我会假设集合的默认行为是在转换为字符串时返回集合中元素的count,因此返回整数。您需要遍历集合或获取特定项目。

    <?php echo $pages->PageDesc->getFirst()->content; ?>
    

    <?php foreach($pages->PageDesc as $desc): ?>
      <?php echo $desc->content; ?>
    <?php endforeach; ?>
    

    或者您可以为此模型编写一个自定义集合,该集合返回集合中每个元素的 content 字段的 concat。

    但是看起来一个页面真的不应该有多个描述吗?您可能需要考虑使用 1-1 关系,或者只是将描述设置为页面模型上的列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多