在Template.php
库上我们可以看到 function write_view()
。现在,专注于$data = NULL
. 现在然后在 APPPATH.'views/'.$suggestion.'.php' 上找到一个现有数据文件,所以我认为这$args[0]
应该是一个加载并破坏它的文件,而不是在$data
.
function write_view($region, $view, $data = NULL, $overwrite = FALSE)
{
$args = func_get_args();
// Get rid of non-views
unset($args[0], $args[2], $args[3]);
// Do we have more view suggestions?
if (count($args) > 1)
{
foreach ($args as $suggestion)
{
if (file_exists(APPPATH .'views/'. $suggestion . EXT) or file_exists(APPPATH .'views/'. $suggestion))
{
// Just change the $view arg so the rest of our method works as normal
$view = $suggestion;
break;
}
}
}
$content = $this->CI->load->view($view, $data, TRUE);
$this->write($region, $content, $overwrite);
}
以另一种方式,$data
应该是数组,它将响应 Codeigniter 库上的 View 模板数据(CI 的标准视图$this->CI->load->view(...)
:)
$data = array('name' => 'John Smith', 'birthdate' => '11/15/1950');
$this->template->write_view('content', 'user/profile', $data, TRUE);
在模板文件 '/user/profile.php' 上用作示例:
HTML/PHP 模板文件profile.php
:
Your name: <?php echo $data["name"]; ?>
Your name: <?php echo $data["birthdate"]; ?>
正如我所看到的,由于文档的原因,一个 CONTENT 变量必须是一个数组......
$template['default']['regions'] = array(
'header' => array(
'content' => array('<h1>Welcome</h1>','<p>Hello World</p>'), ### <----- AS EXAMPLE
'name' => 'Page Header',
'wrapper' => '<div>',
'attributes' => array('id' => 'header', 'class' => 'clearfix')
)
);
区域必须定义为模板,因此如果您没有不起作用的header
区域:
$template['default']['regions'] = array(
'header',
'content',
'footer',
);
!!!!!!简单地说,他无法访问_ci_cached_vars
存储数据的私有访问变量,例如$name
. 相关主题:CodeIgniter 在调用 load->view 之间共享数据