使用Datamapper检查一个对象是否与另一个对象相关

时间:2011-07-30 09:38:56

标签: codeigniter codeigniter-datamapper

使用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; ?>

如何使用Datamapper检查此循环中$client$tag是否相关?

1 个答案:

答案 0 :(得分:2)

怎么样

$client->is_related_to($tag)

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

请参阅http://datamapper.wanwizard.eu/pages/count.html#is_related_to

请注意,这会触发其他count()查询,您可能最好提取$ tag-&gt;客户端,然后检查您的循环

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