2013-07-01 26 views
6

Sto lavorando a un'applicazione web. Questa potrebbe essere una domanda sciocca, ma voglio sapere se sto adottando il buon approccio a questo o no. Voglio avere più viste su una singola vista/pagina.Codeigniter più viste in una vista

La documentazione di Codeigniter dice che "Una vista è semplicemente una pagina Web o un frammento di pagina, come un'intestazione, un piè di pagina, una barra laterale ...".

Desidero avere un'intestazione, una visualizzazione di ricerca rapida, un'altra vista e un piè di pagina per un esempio. Devo implementare un controller per ogni vista (intestazione, ricerca rapida, piè di pagina, ...), o è meglio implementare tutte le funzioni di visualizzazione in un singolo controller? Ad esempio, se so che l'intestazione, il piè di pagina, le viste di ricerca rapida saranno sempre lì (anche se il loro contenuto potrebbe cambiare) dovrei inserire le funzioni per tutte quelle viste in un controller?

Per favore, aiuto.

risposta

5

un approccio è quello di avere una vista modello che ha gli elementi richiesti. vedere questo esempio pseudo-codice ... così, template_view.php ha:

$this->load->view('header',$header);  
$this->load->view('quicksearch',$quickssearch);  
$this->load->view('body',$body);  
$this->load->view('footer',$footer); 

tua singolo regolatore quindi chiama il modello con i parametri per ogni visualizzazione.

$data = new stdClass(); 
$data->header = .... 
$data->quickssearch = .... 
$data->body = ..... 
$data->footer = ..... 

$this->load->view('template_view',$data); 
+0

Grazie, è esattamente quello che ho finito per fare. Ho ancora un piccolo problema nel creare controller e a quali viste li vincolano. Ma spero che il problema scompaia tra qualche giorno/settimana. – kalafun

Problemi correlati