CakePHP的扩展视图
2018-01-14 12:23 更新
很多时候,当制作网页时,我们想在网页页面重复另一网页的某些部分。 CakePHP能实现从一个视图继承一个视图,因此,我们不必再重复写代码。extend()方法用于在视图文件中继承视图。这个方法需要一个参数,带文件路径的视图文件名,但不必带扩展名.ctp。
例
在以下项目中,修改如下所示config/routes.php文件。
config/routes.php
<?php use CakeCorePlugin; use CakeRoutingRouteBuilder; use CakeRoutingRouter; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('extend',['controller'=>'Extends','action'=>'index']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();
在src/Controller/下创建ExtendsController.php文件。复制以下代码至其中。
src/Controller/ExtendsController.php
<?php namespace AppController; use AppControllerAppController; class ExtendsController extends AppController{ public function index(){ } } ?>
在src/Template目录下创建一个名为Extends的文件夹,并在Extends文件夹下创建一个名为header.ctp的视图文件。复制以下代码至其中。
src/Template/Extends/header.ctp
<div align = "center"><h1>Common Header</h1></div> <?= $this->fetch('content') ?>
在Extends目录下创建另一个视图文件index.ctp。复制以下代码至其中。在这里,我们继承了header.ctp。
src/Template/Extends/index.ctp
<?php $this->extend('header'); ?> This is an example of extending view.
通过访问以下网址执行上面的例子。
http://localhost:85/CakePHP/extend
输出
执行以上程序,您会看到以下页面。
以上内容是否对您有帮助:
更多建议: