【发布时间】:2013-02-17 11:05:19
【问题描述】:
我已经对此主题进行了很多研究,但我找不到如何做到这一点。我正在尝试将数据添加到从另一个视图的控制器调用的视图中的$data 参数。但是,我通过subcontroller 添加到subview 的任何数据都不能被subview 访问。但是,当我尝试通过客户端视图将数据传递给子视图时,它工作得很好。 SO 上的大多数修复似乎只是引用了 $key in $data['key'] 而不是 $data 所以这在这里似乎并不真正相关......
我有两个班级:
- welcome.php - 一个页面
- welcomemenu.php - 一组控件,旨在 加载到welcome.php中
这是我的客户端控制器(它所在的页面,welcome.php),它将来自子视图 $welcomemenu 的返回值存储在它自己的 $data 数组中...:
<?php
class Welcome extends CI_Controller {
function __construct() {
parent::__construct();
}
function index() {
//echo 'this is the Welcome index function';
$data['clienttestdata'] = 'data from welcome.php!';
$data['welcomemenu'] = $this->load->view('welcome/welcomemenu', $data, true);
$this->load->helper('url');
$this->load->view('templates/header');
$this->load->view('pages/welcome', $data);
$this->load->view('templates/footer');
}
}
这是客户端视图(“welcome_view.php” - 看起来很简单。$welcomemenu var 是我放置组件类返回的地方...):
<section id="allWelcomeContent" class="mainBody">
<header id="mainPageHdr" class=mainPageHdr>
<!-- other stuff from my header -->
</header>
<!-- this is where i want to put the welcome menu... -->
<section id="mainWelcomeContent" class="mainContent">
<div>
<?php echo $welcomemenu;?>
</div>
</section>
</section>
这是我的子组件welcomemenu.php的控制器:
<?php
class Welcomemenu extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
$data['menu_items'] = array('About', 'Portfolio', 'Resume', 'Fun', 'Blog');
$data['testdata'] = 'data from welcomemenu.php!';
$this->load->view('welcome/welcomemenu', $data);
}
}
最后:这是应该从自己的控制器获取数据的子视图,但不能,即使它可以从调用客户端获取数据(即,$clienttestdata 显示正常,但 $testdata 没有t)!
<section>
<!-- TODO: make this element repeatable so content can load from controller and/or model. -->
<div id="divMenuItems">
<?php echo $clienttestdata;?>
<?php echo $testdata;?>
</div>
</section>
我仍然找不到任何合适的解决方案。如果有人请给我
【问题讨论】:
标签: php codeigniter views