データベース内の他のテーブルへのいくつかの外部IDを含む、オブジェクトのセットをビューに渡します。ユーザーのIDを参照する属性「writer_id」を持つコメントのオブジェクトを言います。
ビューからユーザーのデータ(名前など)を表示するにはどうすればよいですか?
これがコントローラーの「コメント」です:
function index() {
$this->load->model('comment_model');
$data['comments'] = $this->comment_model->get_comments();
$this->load->view('comments',$data); }
これはcomment_modelの中にあります:
function get_comments()
{
$id = $this->uri->segment(3); // ignore this , it's given
$q = $this->db->query("SELECT * FROM comments WHERE post_id=$id");
if ($q->num_rows() > 0 ) {
foreach ($q->result() as $row){
$data[] = $row;
}
return $data;
}
}
ビューで使用できるのは「writer_id」だけで、彼の名前やその他のデータを表示することはできません。
アップデート
これがビューファイルです
<?php
if (is_array($comments)){ ?>
<?php foreach ($comments as $comment) : ?>
<p>
<?php echo $comment->text;?> - written by <?php echo $comment->writer_id ?>
</p>
<?php endforeach ;?>
<?php } ?>
これは印刷されます:
blablabla-4によって書かれました
あるべき場所
bla bla bla-ジョンによって書かれました(ユーザーテーブルのようにIDは4です)