如果这是一个非常n00b的问题,我很抱歉,但我似乎无法解决这个问题。
我正在使用 mahana 消息库,我正在尝试创建一些基本视图和基本控制器来发送消息和检索消息。我已经发送了一条消息(差不多),我可以在收件人个人资料上查看发送的消息。
这是我的问题。我希望能够在收件人查看消息页面上显示发送消息的用户的详细信息以及发送的消息。这些详细信息存储在用户表中。
问题是,如何根据消息模型中的 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>