2014-05-04 4 views
0

Я получаю данные из таблицы и показываю на мой взгляд (codeigniter). В представлении у меня есть идентификатор пользователя, который, конечно, является целым числом. Мне нужно получить имя пользователя из идентификатора пользователя. Как я получу имя пользователя из id?Получить имя пользователя из userid в виде

Код модели ниже.

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. 
} 

Таким образом, с идентификатором пользователя, как я получит имя пользователя без запроса присоединиться?

PS Просьба предоставить ответ без запроса на соединение. Он будет работать с запросом соединения, но я ищу альтернативы.

Я попытался с this-

$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

@ Даниэль Отредактировал мой вопрос. Проверьте это плз. Добавлена ​​информация о таблице в последней части вопроса. – user1638279

ответ

2

Читайте о CodeIgniter хелперов

Просто просто расширить помощника, чтобы включить функцию, которая получит имя по идентификатору.

Чтобы получить больше знаний, просто посетите Codeigniter helper

Good Luck

+1

ohh .. да. Я уже использую вспомогательную функцию для связывания файлов css и js. Поэтому я знаю, как использовать помощники. Но в помощнике я должен писать базовые запросы к базе данных. Правильно ? – user1638279

+0

Вам тоже не нужно, просто загрузите в нее модель и используйте ее метод. – Samuraik

+0

Проверьте этот ответ, чтобы загрузить модель в помощники http://stackoverflow.com/questions/2479132/how-can-i-load-model-to-helper – Samuraik

0

Like 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

Смежные вопросы