2013-05-08 2 views
0

여기 Codeigniter 멍청한 놈.컨트롤러에서 모델로 돌아 가기 모델? Codeigniter

검색 할 때 사용자 프로필을 표시하려고하지만 두 개의 별도 테이블에서 데이터가 필요합니다. 먼저 사용자 ID를 사용자 ID와 일치시킨 다음 해당 사용자 ID를 사용하여 별도의 테이블에서 프로필 정보에 액세스해야합니다. 내보기는 $ query [ 'userid']로 사용자 ID를 표시 할 수 있지만이 값을 다시 모델로 전달하는 방법을 모르겠습니다.

컨트롤러 :

public function get_profile() 
{ 

    $this->form_validation->set_rules('username', 'Username', 'callback_username_check|required'); 
     $username = $this->input->post('username'); 


    if($this->form_validation->run() == FALSE) 
    { 
     $this->load->view('header_loggedin'); 
     $this->load->view('fail'); 
     $this->load->view('footer'); 
    } 
    else 
    { 

     $data['query'] = $this->user_model->get_userid($username); 
     $userid = $query['userid']; 
     $data['row'] = $this->user_model->return_profile($userid); 


     $this->load->view('header_loggedin'); 
     $this->load->view('user/user_profile', $data, $row); 
     $this->load->view('footer'); 
    } 

모델 :

function get_userid($username) 
{ 
    $this->db->select('*'); 
    $this->db->from('user'); 
    $this->db->where('username', $username); 
    $query = $this->db->get(); 

    return $query->row_array(); 
} 

    public function return_profile($userid) 
{ 
    $data = array(); 
    $this->db->select('*'); 
    $this->db->from('user_profile'); 
    $this->db->where('userid', $userid); 
    $query = $this->db->get(); 

    return $query->row_array(); 

    } 

보기 : 당신의 도움에 미리

<h3><?php echo $query['username'];?>- Public Profile</h3> 

<form id="profile" class="form-horizontal"> 
<div class="control-group"> 
<i class="icon-user"></i> 
<b>Name:</b> <?php echo $row['name']; ?> 
</div> 

감사합니다. 내 오류는 $ userid 변수가 내 컨트롤러에서 작동하지 않는다고 말합니다. 그 값을 새 모델로 다시 전달하려면 어떻게해야합니까?

답변

0

이 떨어져 보이는 :

$data['query'] = $this->user_model->get_userid($username); 
$userid = $query['userid']; 
$data['row'] = $this->user_model->return_profile($userid); 

당신은 이런 식으로 뭔가를 할 의미가 있습니다 : 당신은 $data['query']를 할당하는

$user= $this->user_model->get_userid($username); 
$data['row'] = $this->user_model->return_profile($user['userid']); 

다음 $query라는 변수에 액세스하려고합니다. 이것은 효과가 없을 것입니다. 따라서 ID로 사용자를 가져온 다음 해당 개체를 사용하여 사용자 프로필을 가져와야합니다. 보기에

편집

패스 사용자 이름 다음 $data 배열의

$this->load->view('user/user_profile', $data); 

모든 키가 될 것입니다 :

$data['username'] = $username; 

기억은 $data 배열이 줄 뷰에 전달되는 변수로 지정됩니다. 따라서 $data['username']을 전달하면보기에서 $username으로 사용할 수 있습니다.

+0

감사합니다. 카이,이 작업 중입니다. 내보기에도 원래의 사용자 이름 값을 전달해야합니다. 어떻게 수행 할 수 있습니까? – werd2u

+0

내 대답이 업데이트되었습니다. 위를 참조 –

+0

그건 의미가 있습니다! 고맙습니다! BTW 만약 그 fleeces 웹 사이트가 실제로 당신의 것입니다. 나는 그것을 좋아합니다. – werd2u

관련 문제