-1

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

4

1 に答える 1

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-> clientsをフェッチしてから、ループをチェックインする方がよい場合があります。

isset($tag->clients->all[$client->id])
于 2011-08-01T16:15:48.953 に答える