2014-12-08 14 views
0

Мне интересно, как я могу открыть представление в представлении с помощью CodeIgniter.Как открыть представление в представлении с CodeIgniter

Я думаю об этом: В каждом контроллере я вызову по умолчанию index.php-view. Там я добавлю местозаполнитель, чтобы открыть представление для этого контроллера.

Это идея? Или лучше всего создать разные представления для каждого контроллера и включить представление с помощью: $ this-> view ('header') ;?

Я новичок с CI, FYI ;-)

+0

возможно дубликат [Лучший метод включая взгляды в видом на CodeIgniter] (http://stackoverflow.com/questions/15221371/лучший метод, в том числе, видовые внутри-видовые в-CodeIgniter) –

ответ

1

это самый простой наиболее гибкий метод я нашел до сих пор. создайте файл шаблона в вашей папке представлений, в которой используются обычно используемые элементы, такие как заголовок, навигационная панель, нижний колонтитул и т. д.

шаблон содержит открытые переменные для передачи определенного содержимого, например, позволяет сделать шаблон: views/template_web.php а затем включить некоторые файлы, чтобы создать базовую структуру страницы просмотров/tmpl_web_head.php просмотров/tmpl_web_close.php просмотров/tmpl_web_foot.php

теперь создайте папку под названием «паутина» для конкретного содержания просмотров/веб/

с некоторыми конкретными файлами для Интернета просмотров/веб/tmpl_web_head.php просмотров/веб/navbar.php просмотров/веб/navbar_bottom.php

так вот вид шаблона файла/template_web.php

// generic header 
$this->load->view('tmpl_web_head'); 

// folder with views specific for "web" 
$templatefolder = 'web/'; 

// header and navbar specific to web 
$this->load->view($templatefolder.'header_top'); 

$this->load->view($templatefolder.'navbar'); 

// content that is passed from the controller  
if(isset($content01)) 
$this->load->view($templatefolder.$content01); 

if(isset($content02)) 
$this->load->view($templatefolder.$content02); 

if(isset($content03)) 
$this->load->view($templatefolder.$content03); 

if(isset($content04)) 
$this->load->view($templatefolder.$content04); 

if(isset($content05)) 
$this->load->view($templatefolder.$content05); 

if(isset($content06)) 
$this->load->view($templatefolder.$content06); 

$this->load->view($templatefolder.'navbar_bottom'); 


$this->load->view('tmpl_web_close');  
$this->load->view('tmpl_web_foot'); 

раз этот шаблон установить его очень легко передать содержание

в контроллере

function doSomethingWonderful(){ 

    // whatever is happening in the controller 
    $data['results'] = $this->model->doSomething ; 

    // the views you want shown on the page 
    $data['content01'] = 'results_view'; 
    $data['content02'] = 'search_form'; 
    $data['content03'] = 'latest_news'; 

    // just one view call, the content is passed automatically 
    $this->load->view('template_web', $data); 


    } 

есть много велик но это действительно сияет, когда вы делаете разные версии сайта. вы можете просто создать другой шаблон, например, сказать web_beta и поместить эти файлы в папку web_beta.

затем в вашем контроллере все остается неизменным, за исключением того, что вы вызываете бета-шаблон в вызове просмотра.

$this->load->view('template_web_beta', $data); 

это позволяет очень быстро обновлять сайт, внесение изменений и т.д.

Смежные вопросы