Проверьте, связан ли один объект с другим с помощью Datamapper - PullRequest
0 голосов
/ 30 июля 2011

Использование Codeigniter и Datamapper : у меня есть 2 таблицы: теги и клиенты . Клиенты могут иметь много тегов, теги могут иметь много клиентов. Я использую отдельную таблицу соединений для сохранения отношений.

У меня есть страница для управления отдельным тегом, где я перебираю каждого клиента и хочу проверить, связан ли каждый с этим тегом.

???? в приведенном ниже коде определяет, установлен ли флажок, должно быть TRUE, если у клиента есть тег, FALSE, если нет.

<h2>Manage Tag: <?php echo $tag->name; ?></h2>

<?php foreach ($clients as $client): ?>

    <label>
        <?php echo form_checkbox('client_id[]', $client->id, ????); ?>
        <?php echo $client->name; ?>
    </label>

<?php endforeach; ?>

Как я могу проверить, связано ли $client с $tag в этом цикле с Datamapper ?

1 Ответ

2 голосов
/ 01 августа 2011

Как насчет

$client->is_related_to($tag)

или

$client->is_related_to('tag', $tag->id)

См. http://datamapper.wanwizard.eu/pages/count.html#is_related_to

Обратите внимание, что при этом будут запущены дополнительные запросы count (), вам лучше выбрать $ tag-> clients, а затем проверить в цикле, если

isset($tag->clients->all[$client->id])
...