如何在 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) 将数据传递给视图?的主要内容,如果未能解决你的问题,请参考以下文章