2011-06-02 3 views
0

Dans mon modèle nommé Profile_model, j'ai cette fonction qui récupère les données de profil pour l'utilisateur connecté.Utilisation d'une fonction Modèle dans le contrôleur

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

Dans mon contrôleur j'utilise $this->load->view('profile/edit_general_view', $data); pour essayer de charger les données du modèle dans la vue.

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);    
    } 
} 

Quelle est la bonne façon de transmettre les données de la fonction de modèle profile_read dans ma fonction de contrôleur?

Répondre

3

Le temps de lire sur les étendues variables: http://php.net/manual/en/language.variables.scope.php

La variable de données $ dans la méthode de modèle n'est pas accessible au contrôleur. La méthode ou modèle renvoie un tableau réel des données .. par exemple:

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); 
} 

Et puis dans le contrôleur, stocker que les « données » pour la vue.

+2

Ahh, je vois maintenant. Il est également temps de lire à propos de [return values] (http://php.net/manual/fr/functions.returning-values.php). @CyberJunkie, c'est juste PHP rudimentaire, juste pour que vous sachiez que ce n'est pas forcément lié à Codeigniter. –

+0

Merci! maintenant, j'étais capable d'utiliser la fonction du modèle dans le contrôleur en utilisant le modèle '$ this-> load-> ('Profile_model'); $ Data ['row'] = $ this-> Profile_model-> profile_read(); ' – CyberJunkie

+0

Bon travail. utiliser les minuscules. –

Questions connexes