Codeigniter默认布局类似于细枝
我想知道如何在codeigniter中实现这一点,因为在控制器中始终包含这一代码有点麻烦Codeigniter默认布局类似于细枝,codeigniter,templates,views,Codeigniter,Templates,Views,我想知道如何在codeigniter中实现这一点,因为在控制器中始终包含这一代码有点麻烦 $this->load->view('header'); $this->load->view('content_view',$data); $this->load->view('footer'); 在twig中,可以定义默认模板base.html.twig,如下所示: <html> <body> {% block content %}
$this->load->view('header');
$this->load->view('content_view',$data);
$this->load->view('footer');
在twig中,可以定义默认模板base.html.twig,如下所示:
<html>
<body>
{% block content %}
{% endblock %}
</body>
</html>
所以我只需要在我的控制器中调用它
$this->load->view('content_view',$data);
瞧,系统会加载我的默认模板和我的内容视图数据
我不想使用图书馆或类似的东西。我希望在不使用第三方软件的情况下实现此功能
编辑:
我在这里看到了一个好主意,第一个答案
但它只是接近我想要实现的,更像是细枝模板引擎
假设我想在默认模板、导航以及网站名称和页面标题中添加另一个块:
<html>
<head>
<title>{{ app_name }} :: {{ page_title }}</title>
</head>
<body>
<div id="navi">
{% block navi %}
{% endblock %}
</div>
<div id="content">
{% block content %}
{% endblock %}
</div>
</body>
</html>
现在,即使变量位于不同的位置,因为它们都从一个默认页面链接,所以这些值将一起打印
<html>
<head>
<title>Example :: About</title>
</head>
<body>
<div id="navi">
<ul>
<li>Home</li>
<li class="active">About</li>
<li>Contact</li>
</ul>
</div>
<div id="content">
<h3>About this Site</h3>
blah, blah blah
</div>
</body>
</html>
示例::关于
- 家
- 关于
- 接触
关于此站点
废话,废话
您可以采用以下方法:
<?php
#controller
$data = array();
$data['title'] = 'Home Page';
$data['main'] = 'index';
$this->load->view('template', $data);
?>
这是template.php文件
<!-- save as template.php -->
<html>
<head>
<title><?=$title?></title>
</head>
<body>
<div id="navi">
<?php $this->load->view('header') ?>
</div>
<div id="content">
<?php $this->load->view($main) ?>
</div>
</body>
</html>
现在执行header.php文件中所有与导航相关的代码 如果我想在“主页”上传递数据怎么办?
此行$this->load->view('template',$data)
正在将$data
发布到主页面。在index.php
页面上,您将获得变量$title
@user949000。是的,你说得对@神秘的ツ.
<html>
<head>
<title>Example :: About</title>
</head>
<body>
<div id="navi">
<ul>
<li>Home</li>
<li class="active">About</li>
<li>Contact</li>
</ul>
</div>
<div id="content">
<h3>About this Site</h3>
blah, blah blah
</div>
</body>
</html>
<?php
#controller
$data = array();
$data['title'] = 'Home Page';
$data['main'] = 'index';
$this->load->view('template', $data);
?>
<!-- save as template.php -->
<html>
<head>
<title><?=$title?></title>
</head>
<body>
<div id="navi">
<?php $this->load->view('header') ?>
</div>
<div id="content">
<?php $this->load->view($main) ?>
</div>
</body>
</html>