0

我正在开发一个演示应用程序来评估 CodeIgniter 的新项目。我们目前正在审查 DataMapper ORM 库 - http://datamapper.wanwizard.eu

我遇到了一个看起来很奇怪的问题:我无法在一次返回中从 2 个连接的表中获取值。我已经为这两个表创建了模型,并验证了我的 $has_many/$has_one 设置是否正确。在我的控制器中,此代码生成一个对象,其中包含命名表对象中的所有行:

$job = new Job();
$data['job'] = $job->get(); //produces obj with all rows from table 'jobs'
$acct = new Acct();
$data['acct'] = $acct->get(); //produces obj with all rows from table 'accts'

我已经通过用 FOREACH 遍历它们并查看数据来验证上述两个。但是当我尝试从两个表中提取相关信息时。我什么都得不到。我已经尝试了在 GET(Advanced) 文档上可以找到的所有内容。具体来说,这是行不通的:

//NOTE: a job has one acct joined on field 'acct_id'
$job = new Job();
$data['job'] = $job->include_related('acct',array('name'))->get();

结果对象 ($data['job']) 仅包含来自 'jobs' 表的数据。

在我看来,我在视图中使用此代码来查看数据:

<table>
<tr><?php foreach ($job->fields as $col) { ?><th><?= $col ?></th><?php } ?></tr>
<?php foreach($job as $row) { ?>
<tr><?php foreach($job->fields as $col) { ?><td><?= $row->$col ?></td><?php } ?></tr>
<?php } ?>
</table>
4

1 回答 1

1

请试试

$工作 = 新工作();

$data['job'] = $job->include_related('acct',array('name'),TRUE,TRUE)->get();

详细说明: http ://datamapper.wanwizard.eu/pages/getadvanced.html#include_related

于 2013-07-25T11:06:02.060 回答