CodeIgniter DataMapper ORM include_related всегда возвращает первую строку в таблице базы данных - PullRequest
1 голос
/ 21 марта 2012

У меня есть модель пользователя и модель user_profile, и я пытаюсь получить конкретного пользователя и связанный user_profile с помощью следующей функции. если я закомментирую строку include_related, она работает и получает пользователя на основе user_id, но если я пытаюсь использовать include_related для извлечения полей профиля пользователя, он просто возвращает первого пользователя в базе данных, а не пользователя на основе user_id. Что здесь не так?

function edit_admin_user(){
    //check user is logged in and has admin rights
    $this->login_manager->check_login(1);
    //get user id from the uri segment
    $user_id = $this->uri->segment(3);

    $user = new User();
    $user->get_by_id($user_id);
    //$user->include_related('user_profile', array('firstname','surname', 'telephone', 'address1', 'address2', 'city', 'postcode'), TRUE, TRUE)->get();

    //set the content for the view partial (this is the actual content of the page)
    $content_data['user'] = $user;

    $data['content'] = $this->load->view('admin/edit_admin_user', $content_data, TRUE);
    $data['page_title'] = 'Get Stuffed | Admin Area | Edit Admin User';

    $this->load->view('admin/index', $data);
}

1 Ответ

0 голосов
/ 21 марта 2012

Был ментальный блок, это должно было быть:

 $user = new User();
    $user->where('id', $user_id);
    $user->include_related('user_profile', array('firstname','surname', 'telephone',   'address1', 'address2', 'city', 'postcode'), TRUE, TRUE)->get();
...