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);      
    }

我想使用 $this->_render('pages/our_template',$renderData); 而不是 $this->load->view('pages/our_template',$output); 但我需要将 $output 传递给视图页面。请帮助我找到一种使用 $renderData 将 $output 传递到我的视图页面的方法。

在我的视图页面中,我想获取类似的数据

echo $output;
4

1 回答 1

0

嗨,你可以用这样的视图来做

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

编辑新答案

首先抱歉回答错误

如果你想使用 $this->_render 方法,那么你必须利用 OOP 在 application/core 目录下创建一个 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);

            }

}

示例页面控制器

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);

}

如果你喜欢回答接受并提高它。

于 2013-04-18T10:40:48.893 回答