これが本当にn00bの質問である場合は申し訳ありませんが、この問題に頭を悩ませているようです。
私は mahana メッセージ ライブラリを使用しており、いくつかの基本的なビューと基本的なコントローラーを作成してメッセージを送信し、メッセージを取得しようとしています。釘付けのメッセージを送信しました (ほぼ)。受信者のプロファイルで送信されたメッセージを表示できます。
これは私の問題です。メッセージを送信したユーザーの詳細を、受信者のメッセージ表示ページで送信済みメッセージと一緒に表示できるようにしたいと考えています。これらの詳細は users テーブルに保存されます。
問題は、メッセージング モデルの get_all_threads($user_id) モデルの結果に基づいて、モデル クエリを実行して、メッセージ コントローラーの view_my_messages 関数からユーザー名、アバターの場所などを取得する方法です。
以下のコントローラー、ビュー、モデルのコードを含めました。
コントローラ:
function view_my_messages(){
$this->load->library('mahana_messaging');
$user_id = $this->session->userdata('id');
$data['message'] = $this->mahana_model->get_all_threads($user_id);
$this->load->view('messages/my_messages',$data);
}
メッセージ モデル:
function get_all_threads($user_id, $full_thread = FALSE, $order_by = 'asc')
{
$sql = 'SELECT m.*, s.status, t.subject, '.USER_TABLE_USERNAME .
' FROM ' . $this->db->dbprefix . 'msg_participants p ' .
' JOIN ' . $this->db->dbprefix . 'msg_threads t ON (t.id = p.thread_id) ' .
' JOIN ' . $this->db->dbprefix . 'msg_messages m ON (m.thread_id = t.id) ' .
' JOIN ' . $this->db->dbprefix . USER_TABLE_TABLENAME . ' ON (' . USER_TABLE_TABLENAME .'.'. USER_TABLE_ID . ' = m.sender_id) '.
' JOIN ' . $this->db->dbprefix . 'msg_status s ON (s.message_id = m.id AND s.user_id = ? ) ' .
' WHERE p.user_id = ? ' ;
if (!$full_thread)
{
$sql .= ' AND m.cdate >= p.cdate';
}
$sql .= ' ORDER BY t.id ' . $order_by. ', m.cdate '. $order_by;
$query = $this->db->query($sql, array($user_id, $user_id));
return $query->result_array();
}
意見:
<div class="row-fluid">
<div class="span12">
<div class="well">
<h3>View Messages</h3>
<?php foreach($message as $messagefield):?>
<h4><?php echo $messagefield['subject'];?></h4>
<?php endforeach; ?>
</div>
</div>
</div>