2016-12-07 3 views
-1

Я ищу наилучшую практику передачи данных с контроллера в subview в Codeigniter, до сих пор я создал файл макета, который загружает subviews. Например, когда я делаю это, он работает, но мне интересно, есть ли более чистый способ делать что-то? Или есть ли какие-либо лучшие варианты шаблонов для моего html и CSS без необходимости делать это для каждой функции?Лучшая практика для передачи данных в subview codeigniter

В настоящее время переименования каждого отдельных переменные $ данных в $ var1, $ var2, $ var3 и т.д.

Вот мой код при загрузке пагинации и передавая это в подвид.

function index($start=0) 
{ 
    $var1['posts']=$this->post->get_posts(3,$start); 
    $this->load->library('pagination'); 
    $config['base_url']=base_url().'posts/index/'; 
    $config['total_rows']=$this->post->get_posts_count(); 
    $config['per_page']=3; 
    $this->pagination->initialize($config); 
    $var2['pages']= $this->pagination->create_links(); 
    $var3=array('subview' => 'post_index'); 

    $data=array_merge($var1, $var2, $var3); 

    $this->load->view('layouts/layout',$data); 
} 

И в моем файле шаблона Я использую эту строку кода в теле, чтобы загрузить подвидов:

<?php $this->load->view($subview); ?> 
+0

что такое '$ var3 = array ('subview' => 'post_index');' for? –

+0

post_index - это имя подзаголовка, в котором перечислены все сообщения в блоге. Эта строка кода помещает этот subview внутри тела макета, назначая «subview» индексом post. На каждой странице он будет использоваться как: $ var3 = array ('subview' => 'login form'); ' $ var3 = array ('subview' => 'products_index');' –

ответ

2

Хорошо там действительно есть способ сделать это. Предполагая, что у вас есть вид под названием post_index, в котором вы проходите $var['posts'], а затем вы хотите поместить этот вид в свой макет.

$var['posts'] = $this->post->get_posts(3, $start); 

// setting the third parameter as true would return the view as 
// data which you can pass to another view 
$data['page'] = $this->load->view('post_index', $var, TRUE); 
$this->load->view('layouts/layout', $data); 

От CodeIgniter Docs

Вернувшиеся взгляды как данные

Существует третий необязательный параметр позволяет изменить поведение метода, так что она возвращает данные в виде строки а не отправлять его в ваш браузер. Это может быть полезно, если вы хотите, чтобы обрабатывал данные в некотором роде. Если вы установите для параметра значение TRUE (boolean), он вернет данные. Поведение по умолчанию - false, которое отправляет его в ваш браузер. Не забудьте назначить его переменной, если вы хотите, чтобы возвращаемые данные .

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