【问题标题】:Using Page $data variables in template在模板中使用 Page $data 变量
【发布时间】:2014-11-11 17:44:15
【问题描述】:

有没有办法在它加载的模板中使用页面 $data 变量?

例如 - 如果我有一个具有这样头部的模板:

<!DOCTYPE html>
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
  <title><?php echo $data['title']; ?> | ACME, Inc.</title>
</head>

我的视图是 pages/home 并且控制器看起来像这样:

 public function index($data) {


$data = array();
            $data['title'] = 'Home';

        $this->load->view('pages/home', $data);
}

如何让父模板或同级视图接受页面的变量?

【问题讨论】:

  • &lt;?php echo $data['title']; ?&gt; 不应该是&lt;?php echo $title; ?&gt;吗?
  • 你在哪里包含带有标题信息的视图?
  • 嗯,我有一个使用模板的页面。该模板有一个head 视图,我想将特定于页面的变量传递给它。
  • 使用&lt;?php echo $title; ?&gt;

标签: php codeigniter codeigniter-2


【解决方案1】:

我通常使用下面的代码来处理页面中的元数据

在控制器中:

 $page = new stdClass();
        $page->title = "Your Page Title";
        $page->desc = "Your page description";
        $page->key = "keword1,keyword2,keyword3";
        $page ->author = "Alex";

 $data['page'] = $page;
 $this->load->view('pages/home', $data);

在视图中:

<title><?php
if(isset($page->title)){
echo $page->title;
}
?></title>
<meta name="description" content="<?php
if(isset($page->desc)){
echo $page->desc;
}
?>"/>
<meta name="keywords" content="<?php
if(isset($page->key)){
echo $page->key;
}
?>"/>
<meta name="author" content="<?php
if(isset($page->author)){
echo $page->author;
}
?>"/>
content="<?php
if(isset($page->desc)){
echo $page->desc;
}
?>"/>

这对于不冲突的变量是安全的并且易于使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2014-07-23
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多