如何在 codeigniter 中使用 $this_render->view("pagename",$renderData) 将数据传递给视图?

Posted

技术标签:

【中文标题】如何在 codeigniter 中使用 $this_render->view("pagename",$renderData) 将数据传递给视图?【英文标题】:how to pass data to view using $this_render->view("pagename",$renderData) in codeigniter? 【发布时间】:2013-04-11 10:17:07 【问题描述】:

这是我的代码。

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;

【问题讨论】:

【参考方案1】:

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

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


如果你喜欢回答,请接受。

【讨论】:

感谢您的评论,但我不想使用 load->view,我知道我可以通过这种方式获取 $data。但我想通过 $this->_render('pages/our_template',$renderData); 我和你在一起,我也需要这个答案。我不想使用 load->view 请检查更新的答案并告诉我。是否要标记。

以上是关于如何在 codeigniter 中使用 $this_render->view("pagename",$renderData) 将数据传递给视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在codeigniter中使用mpdf?

如何使用codeigniter在数据库中插入图像

如何在 Codeigniter 中连接两个表

如何在codeigniter中获取上一页网址

如何避免codeigniter中的sql注入

如何在 CodeIgniter 的库中使用 session?