CakePHP的視圖

2018-01-12 18:22 更新

在MVC中,字母“V”就是視圖(View)。視圖負(fù)責(zé)發(fā)送基于請求的輸出給用戶。 視圖類(View Classes)是加快開發(fā)過程的有效方式。

視圖模板

CakePHP中的視圖模板文件具有默認(rèn)擴(kuò)展名.ctp(CakePHP Template)。這些模板從控制器獲取數(shù)據(jù),渲染輸出并適當(dāng)?shù)娘@示給用戶。我們可以在模版中使用變量,和各種控制結(jié)構(gòu)。

模板文件存儲在src/Template/中的一個以使用他的控制器命名的文件夾,或者以它所對應(yīng)的行為命名的文件夾中。例如,對于產(chǎn)品控制器(Products Controller)view

()行為的視圖文件,通常就是src/Template/Products/view.ctp。

總之,控制器(如ProductsController的)的名稱和作為目錄(Products)的名稱相同,但不包含Controller;控制器(如ProductsController)的行為/方法的名稱(如view())是和視圖文件的名稱是相同的(如view.ctp)。

視圖變量

視圖變量是用來得到控制器值的變量。我們可以在視圖模板中使用盡可能多的變量。我們可以使用set()方法在視圖中傳遞值。這些變量集可以在你的視圖文件和你要渲染的布局中使用。以下是set()方法的語法。

語法

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

這種方法有兩個參數(shù)- 變量名 。

在以下程序中,修改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/目錄下創(chuàng)建ProductsController.php文件。復(fù)制以下代碼至其中。

src/Controller/ProductsController.php

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

src/Template下創(chuàng)建Products目錄,并在Products目錄下創(chuàng)建一個名為view.ctp視圖文件復(fù)制以下代碼代碼至其中。

src/Template/Products/view.ctp

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

通過訪問以下網(wǎng)址執(zhí)行上面的例子。

http://localhost:85/CakePHP/template

輸出

上述網(wǎng)址會產(chǎn)生以下輸出。




以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號