2010-04-07 3 views
0

j'ai un contrôleur avec une fonction d'index comme suit:Codeigniter - accéder aux variables à partir d'un tableau passé dans une page

function index() 
{ 
    $this->load->model('products_model'); 
    $data['product'] = $this->products_model->get(3); // 3 = product id 
    $data['product_no'] = 3; 
    $data['main_content'] = 'product_view'; 
    //print_r($data['products']); 
    $this->load->view('includes/template', $data); 
} 

C'est la fonction get dans le fichier products_model

function get($id) 
{ 
    $results = $this->db->get_where('products', array('id' => $id))->result(); 
    //get the first item 
    $result = $results[0]; 
    return $result; 
} 

Les produits La table contient des champs tels que le nom, le prix, etc. Pouvez-vous me dire comment produire des variables à partir de $ data ['product'] après l'avoir passée dans la vue? J'ai essayé tellement de choses mais rien ne fonctionne, même si le print_r (commenté) montre les données - il n'est pas passé dans la vue. Je pensais que ce peut-être parce que la vue appelle un fichier modèle qui fait référence à la variable main_content:

contenu du fichier modèle:

<?php $this->load->view('includes/header'); ?> 

<?php $this->load->view($main_content); ?> 

<?php $this->load->view('includes/footer'); ?> 

mais j'ai essayé de créer un fichier de vue à plat et ne pouvait toujours pas accéder aux variables .

Un grand merci,

Répondre

1

votre tableau de données $ est "Ripped" dans les variables individuelles dans la vue.

print $product; 
print $product_no; 
print $main_content; 
+0

Oui, mais ils sont également listés dans $ this-> load -> _ ci_cached_vars pour une utilisation dans les vues enfant qui n'ont pas de tableau de données. –

+0

Merci pour votre aide. J'ai supprimé ce fichier de modèle - maintenant la vue est un fichier HTML plat. J'ai également changé la fonction d'index du contrôleur à indice de fonction() { $ this-> load-> model ('products_model'); $ data ['product'] = $ this-> products_model-> get (3); // 3 = ID du produit $ this-> load-> view ('test', $ data); } Cependant, je ne peux pas accéder aux variables du tableau dans la vue. Quel serait le bon code? J'ai essayé echo $ this -> $ price, echo $ data ['price'] - Je suis sûr que c'est très simple, qu'est-ce que je fais de mal? – Matt

0

têtes Manipulation & pieds de page de cette façon suce et obtenir assez rapidement de ingérable. Essayez d'utiliser mon Template library, vos données seront transmises à la vue du produit aucun problème.

+0

Merci, je vais jeter un oeil à ce Phil. – Matt

Questions connexes