php - 我的 codeigniter header.php 中的动态标题

标签 php codeigniter

我有一个 header.php 我正在为每个页面加载我的 Controller 。但是我希望每个页面都有动态标题。我的想法是在加载 View 时将 $title 变量传递到 View 中:

//Home Controller
function index()
{

    $data['title'] = "Dynamic Title";

    $this->load->view('header', $data);
    $this->load->view('layouts/home');
    $this->load->view('footer');

}

然后检查我的 header.php 中的 $title 变量

<title>
    <?php if ($title)
        { 
            echo $title; 
        }
    else
        { 
            echo 'Default Title'; 
        }
    endif; ?>       
</title>

但是这不起作用,我得到一个空白页。我认为这是我对 header.php 的语法,但我不明白为什么。

最佳答案

正确的if语法

您在 if 语句 上的语法有点偏离。您可以使用:

if (condition) {
  // do a
} else {
  // do b
}

或者

if (condition) :
  // do a
else : 
  // do b
endif;

你好像把后者的结局换成了前者。

在标题中使用三元运算符

完成更改后,您的标题可以轻松打印为:

<title><?php echo isset($title) ? $title : 'Default Title' ; ?></title>

替代 View 加载

加载 View 的另一种方法是使用单个模板文件:

$data['title'] = 'Foo Bar';
$data['content'] = 'indexPage';

$this->load->view('template', $data);

这会将 template.php 文件加载为您的 View 。在此文件中,您加载后续部分:

<?php $this->load->view("_header"); ?>
<?php $this->load->view($content); ?>
<?php $this->load->view("_footer"); ?>

这绝不是必需的,但它可以帮助您在 Controller 中保持简洁。

关于php - 我的 codeigniter header.php 中的动态标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498841/

相关文章:

php - foreach 不执行 - 只显示第一个变量输入

php - 如何在同一查询中一起选择相似的值?

php - SQLSTATE[HY000] [2002] 无效参数(SQL : select * from information_sch ema. 表,其中 table_schema = mamaput 和 table_name = migrations)

php - 图像未在 codeigniter 中使用 jquery 上传

php - 如何从php/mysql中的不同表中获取特定列数据

php - 为 PDF 文件生成唯一的下载链接

php - 目前印度的 PayPal 账户只能发送付款。该收款人没有资格获得资金

php - 确认 CodeIgniter anchor 链接中的框以删除记录

php - 如何在 Azure 上托管 Codeigniter 应用程序?

php - MySQL 将不同的行连接到不同的列