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,
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. –
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