Использование функции модели в контроллере - PullRequest
0 голосов
/ 02 июня 2011

В моей модели с именем Profile_model у меня есть эта функция, которая извлекает данные профиля для вошедшего в систему пользователя.

function profile_read()
{
    $this->db->where('user_id', $this->tank_auth->get_user_id());
    $query = $this->db->get('user_profiles');
    $data['row'] = $query->row();
}

В моем контроллере я использую $this->load->view('profile/edit_general_view', $data);, чтобы попытаться загрузить данные измодель в поле зрения.

function edit_profile()
{       

    //validation rules
    $this->form_validation->set_rules('first_name', 'First Name', 'trim|required|xss_clean|min_length[2]|max_length[20]|alpha');
    $this->form_validation->set_rules('last_name', 'Last Name', 'trim|required|xss_clean|min_length[2]|max_length[20]|alpha');


    if ($this->form_validation->run() == FALSE) //if validation rule fails
    {           
        $this->load->view('profile/edit_general_view', $data); //load data from model in view
    }
    else //success
    {
        $send_to_db = array (                   
                'first_name'    => $this->input->post('first_name'),
                'last_name'     => $this->input->post('last_name')
        );
        $seg = 'edit';
        $this->load->model('Profile_model');
        $this->Profile_model->profile_update($send_to_db, $seg);            
    }
}

Как правильно передать данные из функции модели profile_read в функцию моего контроллера?

1 Ответ

3 голосов
/ 02 июня 2011

Время читать о переменных областях: http://php.net/manual/en/language.variables.scope.php

Переменная $ data в методе модели недоступна для контроллера.Пусть метод модели вернет фактический массив данных, например:

function profile_read()
{
    $this->db->where('user_id', $this->tank_auth->get_user_id());
    $query = $this->db->get('user_profiles');
    return ($query ? $query->row : FALSE);
}

А затем в контроллере сохраните его в «данных» для представления.

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