2014-05-04 31 views
0

我從表中獲取數據並顯示在我的視圖(codeigniter)中。在視圖中,我有用戶ID,當然這是一個整數。我需要從用戶ID獲取用戶名。我將如何從ID獲取用戶名?在視圖中從用戶名獲取用戶名

型號代碼如下。

class Resumemodel extends CI_Model 
{ 
    function getallresume() 
    { 
    $query = $this->db->get('resume'); 
     return $query; 
    } 
} 

控制器代碼如下。

class Resumec extends CI_Controller 
{ 
    function resumelist() 
    { 
    $this->load->model('Resumemodel'); 
    $query = $this->Resumemodel->getallresume(); 
    $dt['main_content'] = 'admin/resumeinfo'; 
    $dt['query'] = $query; 
    $this->load->view('admin/includes/template.php',$dt); 
    } 
} 

觀點是低於(僅部分我把這裏)

foreach ($query->result() as $row) 
{ 
    $id = $row->user_id; 
    // other table data. 
} 

因此,從用戶ID,我怎麼會得到用戶名沒有加入查詢?

PS 請提供答案,不加入查詢。它將使用連接查詢,但我正在尋找替代品。

我試圖用這個 -

$objResume = new resumec(); //resumec is the controller 
$username = $objResume->get_username($id); // get_username is function to get username. 
echo $username; 

這是工作,但是這是一個不按照MVC邏輯正確/好辦法。那麼有沒有其他的選擇?

編輯 - 2表在那裏。 '用戶'和'簡歷'。 user_id在'resume'表中並且uid,用戶名在'user'表中。

+0

凡的用戶名位於您的數據庫?數據結構如何 - 用戶標識和用戶名在兩個獨立的表上? – Dan

+0

@Daniel編輯我的問題。檢查它PLZ。在問題的最後部分添加了表格信息。 – user1638279

回答

2

閱讀有關笨助理

只是簡單地延長幫手包括通過id來獲取用戶名的功能。

爲了獲得更多的知識,只需訪問Codeigniter helper

好運

+1

哦..是的。我已經在使用一個輔助函數來鏈接我的CSS和js文件。所以我知道如何使用助手......但在助手中,我必須編寫基本的數據庫查詢。對 ? – user1638279

+0

不,您不需要,只需將模型加載到其中,然後使用它的方法即可。 – Samuraik

+0

檢查此答案將模型加載到幫助程序中 http://stackoverflow.com/questions/2479132/how-can-i-load-model-to-helper – Samuraik

0

Resumemodel你可以/應該的usermodel在這裏你可以定義功能get_user_name($user_id)。 您可以將此模型與Resumemodel一起加載,並且可以使用get_user_name函數。

1

你可以做到這一點的變化:

class Resumec extends CI_Controller 
{ 
    function resumelist() 
    { 
    $this->load->model('Resumemodel'); 
    $query = $this->Resumemodel->getallresume(); 
    $usernames = array(); 
    foreach ($query->result() as $row) 
    { 
     $usernames[$row->user_id] = $this->get_username($row->user_id); 
    } 
    $dt['main_content'] = 'admin/resumeinfo'; 
    $dt['query'] = $query; 
    $dt['usernames'] = $usernames; 
    $this->load->view('admin/includes/template.php',$dt); 
    } 
} 

所以,在視圖中你只是這樣做:

foreach ($query->result() as $row) 
{ 
    $id = $row->user_id; 
    $username = $usernames[$row->user_id]; 
} 
+0

是的,這也行得通。但不幸的是,我不能將2個答案標記爲接受的答案。但仍然+1(upvote)爲您的時間和精力。我也檢查過了。這是工作。 :) 謝謝。 – user1638279