web-dev-qa-db-fra.com

comment charger la vue dans une autre vue codeigniter 2.1?

J'ai travaillé avec CI et j'ai vu sur le site Web de CI que vous pouvez charger une vue en tant que partie variable des données que vous envoyez à la vue "principale", donc, selon le site (cela dit beaucoup de choses, et beaucoup sont pas comme on dit ... pagination ej et autres) j'ai fait quelque chose comme ça

$data['menu'] = $this->load->view('menu');
$this->load->view ('home',data);

le résultat est que j'obtiens un écho du menu en haut du site (avant de commencer mon corps et tout) et où devrait être son rien, comme s'il était imprimé avant tout ... Je n'en ai aucune idée honnêtement problème, est-ce que quelqu'un avait le même problème avant?

25
jpganz18

Deux façons de procéder:

  1. Chargez-le à l'avance (comme vous le faites) et passez à l'autre vue

    <?php
    // the "TRUE" argument tells it to return the content, rather than display it immediately
    $data['menu'] = $this->load->view('menu', NULL, TRUE);
    $this->load->view ('home', $data);
    
  2. Charger une vue "de l'intérieur" d'une vue:

    <?php
    // put this in the controller
    $this->load->view('home');
    
    // put this in /application/views/home.php
    $this->view('menu');
    echo 'Other home content';
    
68
landons

Créer une fonction d'aide

function loadView($view,$data = null){
    $CI = get_instance();
    return $CI->load->view($view,$data);
}

Chargez l'assistant dans le contrôleur, puis utilisez la fonction à votre avis pour en charger un autre.

<?php 
...
    echo loadView('secondView',$data); // $data array
...
?>
7
foszto