2012-05-04 4 views
0

J'utilise CodeIgniter et j'ai deux contrôleurs différents - login.php et site.phpdonnées entre deux contrôleurs Passing MVC

Dans login.php

function credentials(){ 
    $user = $this->input->post('username'); 
    // there is some code here 
} 

En site.php, je function members_area() Je dois passer la variable $ user de login.php à site.php. Comment puis-je faire cela ?

Merci

+0

Et qui appelle la méthode 'des titres de compétence()'? – zerkms

+0

Si vous respectez le code MVC de Codeigniter, vous ne devriez probablement pas partager de contrôleurs. Envisagez d'utiliser une bibliothèque ou un assistant pour gérer les informations partagées. – rjz

+0

Essayez la réponse de broncha. – siaooo

Répondre

2

Si vous parlez des connexions utilisateur ici .. Dans votre contrôleur Login vous vérifier les informations d'identification de l'utilisateur . Si oui, alors vous devez définir une variable de session

$this->sessions->set_userdata('user_id',$user_id); 
redirect('site/members_area'); 

Ensuite, dans votre contrôleur Site vous récupérez les données pour cet utilisateur de DB.

$current_user = $this->sessions->userdata('user_id'); 

Et vous obtenez vos données requises de la base de données.

+0

J'ai fait la même chose. Merci quand même –

0

Il suffit de prendre une redirection vers le site/members_area/$ user et vous obtiendrez $ paramètre utilisateur dans la fonction members_area ($ user)

0

Transforme qu'un contrôleur est utilisé pour le contrôle ce qui est envoyé à une vue. Si la conception est bonne, vous n'êtes pas vraiment censé envoyer des données entre deux contrôleurs.

J'ai envoyé inséré la valeur du nom d'utilisateur dans une session.

Ainsi, login.php

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

et récupéré la valeur site.php

$data['userid'] = $this->session->userdata('username'); 
$this->load->view('members_area' , $data); //send the info to the controller 
Questions connexes