이것이 정말로 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>
감사합니다!
참조 http://ellislab.com/codeigniter/user-guide/database/active_record.html 당신을 도울 것입니다 –
@DesertP는''JOIN '하지 않습니다. $ this-> db-> dbprefix. USER_TABLE_TABLENAME. 'ON ('. USER_TABLE_TABLENAME. '.'USER_TABLE_ID. '= m.sender_id)'.' 이미 해 보셨습니까? –