2013-06-26 1 views
0

Я работаю над демо-приложением, чтобы оценить CodeIgniter для нового проекта. В настоящее время мы просматриваем библиотеку ORM DataMapper. http://datamapper.wanwizard.euDataMapper получить результаты с присоединением

Я столкнулся с проблемой, которая кажется странной: я не могу получить значения из 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) docs. В частности, это не работает:

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

Объект результат ($ данных [ «работа»]) содержит только данные из таблицы «рабочие места».

На мой взгляд, я использую этот код в представлении, чтобы увидеть данные:

<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> 

ответ