Как я могу получить данные, используя модель, и передать их для использования в контроллере с помощью CodeIgniter? - PullRequest
1 голос
/ 03 июня 2011

Из формы входа пользователя мне нужно использовать их username ($this->input->post('username')) для запроса к таблице membership в моей базе данных, чтобы я мог получить пользователей firstname и lastname, что, по моему мнению, должно быть сделано черезМодель звонила с моего контроллера.Затем мне нужно передать эти данные обратно в мой контроллер, чтобы использовать firstname и lastname для добавления в мой сеанс userdata, установленный в моем контроллере, как показано ниже.

$data = array(
   'username' => $this->input->post('username'),
   'firstname' => //need to retrieve value from database,
   'lastname' => //need to retrieve value from database,
   'is_logged_in' => true
);

$this->session->set_userdata($data);

Спасибо, Кристан.

Ответы [ 3 ]

2 голосов
/ 03 июня 2011

В вашей модели создайте функцию для получения имени и фамилии пользователя:

 public function get_user_details($username){
     // retrieve contents from db:
     // the first username here is the name of the column in your table

     $query = $this->db->select('firstname, lastname')
                       ->where('username', $username)
                       ->get('membership');
     return $query->result_array();
 }

В вашем контроллере, как вы делали, захватите содержимое POST в вашем контроллере:

 $username = $this->input->post('username');

Затем из вашего контроллера вызовите функцию модели, но сохраните выходные данные этой функции модели в переменной:

 $data = $this->user_model->get_user_details($username);

После этого вы можете делать то, что пытались сделать:

 $this->session->set_userdata($data);

Надеюсь, это поможет. Я написал это из головы, но это должно работать. Я также предлагаю вам прочитать документацию по CI, потому что это действительно лучшая документация, которую я когда-либо видел для фреймворка. Удачи.

1 голос
/ 03 июня 2011

Пожалуйста, проверьте Руководство пользователя CodeIgniter для модели . Пример контроллера Blog и модели Blog ответит вам.

class Blogmodel extends CI_Model {

    var $title   = '';
    var $content = '';
    var $date    = '';

    function __construct()
    {
        // Call the Model constructor
        parent::__construct();
    }

    function get_last_ten_entries()
    {
        $query = $this->db->get('entries', 10);
        return $query->result();
    }

    function insert_entry()
    {
        $this->title   = $_POST['title']; // please read the below note
        $this->content = $_POST['content'];
        $this->date    = time();

        $this->db->insert('entries', $this);
    }

    function update_entry()
    {
        $this->title   = $_POST['title'];
        $this->content = $_POST['content'];
        $this->date    = time();

        $this->db->update('entries', $this, array('id' => $_POST['id']));
    }

}

class Blog_controller extends CI_Controller {

    function blog()
    {
        $this->load->model('Blog');

        $data['query'] = $this->Blog->get_last_ten_entries();

        $this->load->view('blog', $data);
    }
}
0 голосов
/ 03 июня 2011

Сначала нужно создать модель.

class Membership_model extends CI_Model {
    function __construct() {
        parent::__construct();
    }

    function getUser($username) {
        $query = $this->db->get_where('membership', array('username' => $username));
        return $query->result_array();
    }
}

затем в вашем контроллере используйте модель членства для извлечения данных. Вызов этой функции: $this->membership_model->getUser($this->input->post('username'));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...