CakePHP的视图

2018-01-12 18:22 更新

在MVC中,字母“V”就是视图(View)。视图负责发送基于请求的输出给用户。 视图类(View Classes)是加快开发过程的有效方式。

视图模板

CakePHP中的视图模板文件具有默认扩展名.ctp(CakePHP Template)。这些模板从控制器获取数据,渲染输出并适当的显示给用户。我们可以在模版中使用变量,和各种控制结构。

模板文件存储在src/Template/中的一个以使用他的控制器命名的文件夹,或者以它所对应的行为命名的文件夹中。例如,对于产品控制器(Products Controller)view

()行为的视图文件,通常就是src/Template/Products/view.ctp。

总之,控制器(如ProductsController的)的名称和作为目录(Products)的名称相同,但不包含Controller;控制器(如ProductsController)的行为/方法的名称(如view())是和视图文件的名称是相同的(如view.ctp)。

视图变量

视图变量是用来得到控制器值的变量。我们可以在视图模板中使用尽可能多的变量。我们可以使用set()方法在视图中传递值。这些变量集可以在你的视图文件和你要渲染的布局中使用。以下是set()方法的语法。

语法

CakeViewView::set(string $var, mixed $value)

这种方法有两个参数- 变量名 。

在以下程序中,修改config/routes.php文件

config/routes.php文件

<?php
   use CakeCorePlugin;
   use CakeRoutingRouteBuilder;
   use CakeRoutingRouter;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('template',['controller'=>'Products','action'=>'view']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();

src/Controller/目录下创建ProductsController.php文件。复制以下代码至其中。

src/Controller/ProductsController.php

<?php
   namespace AppController;
   use AppControllerAppController;
   
   class ProductsController extends AppController{
      public function view(){
         $this->set('Product_Name','XYZ');
      }
   }
?>

src/Template下创建Products目录,并在Products目录下创建一个名为view.ctp视图文件复制以下代码代码至其中。

src/Template/Products/view.ctp

Value of variable is: <?php echo $Product_Name; ?>

通过访问以下网址执行上面的例子。

http://localhost:85/CakePHP/template

输出

上述网址会产生以下输出。




以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号