Я работаю над демо-приложением, чтобы оценить 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>
Это, кажется, работает! – gkl