2013-04-18 3 views
1

Вот мой код.

public function usertype($renderData='') 
    { 
     $this->grocery_crud->set_table('usertype'); 
     $output = $this->grocery_crud->render(); 

     $this->_example_output($output,$renderData='');   
    } 

    function _example_output($output = null,$renderData='') 

    { 

     // $this->load->view('pages/our_template',$output); 

     //echo $output; 
     // $this->output=$output; 
     $this->_render('pages/our_template',$renderData);  
    } 

Я хочу использовать $ это -> _ рендеринга ('страницы/our_template', $ RenderData); вместо $ this-> load-> view ('pages/our_template', $ output); Но мне нужно передать $ output на страницу просмотра. Пожалуйста, помогите мне найти способ передать $ output на мою страницу просмотра с помощью $ renderData.

И в моей странице просмотра я хочу, чтобы получить данные как

echo $output; 

ответ

0

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

$output = $this->load->view('pages/our_template',$data,TRUE); // this will return view output to variable 
echo $output 

Edited Новый Ответ

В первую очередь, извините за неправильный ответ

, если вы хотите использовать $ это -> _ метод отрисовки, то вы должны воспользоваться ООП создать MY_Controller под приложения/каталога ядра и добавить _render метод в нем, расширяет ваши все контроллеры с MY_Controller как этот

class MY_Controller extends CI_Controller{ 

     function __construct(){ 
       parent::__construct(); 
      } 

      function _render($view = '', $data = array(), $return = FALSE){ 


       if($return){ 
        return $this->load->view($view,$data,$return); 
       }  

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

      } 

} 

Пример контроллер Page

class PageController extends MY_Controller{ 

    function __construct(){ 
     parent::__construct(); 
    } 

    function index(){ 
     $data['title'] = 'Page title'; 
     $data['body'] = 'Page body'; 
     $this->_render('page_view',$data); 
    } 

} 

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

function _render($view = '', $data = array(), $return = FALSE){ 

$output = $this->load->view($view,$data,TRUE); 

if($return){ 
    return $output; 
} 

$layout_data['header'] = $this->load->view('header_view',$data,TRUE); 
$layout_data['footer'] = $this->load->view('footer_view',$data,TRUE); 
$layout_data['sidebar'] = $this->load->view('sidebar_view',$data,TRUE); 
$layout_data['body'] = $output; 

$this->load->view('layout',$layout_data); 

} 

если вам нравится ответ принять и вверху.

+0

Спасибо за комментарий, но я не хотел использовать load-> view, я знаю, что могу получить $ data таким образом. Но я хотел получить это через $ this -> _ render ('pages/our_template', $ renderData); – Hriju

+0

Я с тобой, мне тоже нужно это ответить. Я не хочу использовать load-> view –

+0

Пожалуйста, проверьте обновленный ответ и дайте мне знать. это до отметки или нет. – umefarooq