CakePHP 视图
MVC 中的字母"V"代表视图。视图负责根据请求将输出发送给用户。
视图类是一种加速开发过程的强大方式。
查看模板
CakePHP 的视图模板文件从控制器获取数据,然后呈现输出,以便它可以正确地显示给用户。我们可以在模板中使用变量,各种控制结构。
模板文件存储在
src/Template/ 目录中,该目录以使用这些文件的控制器命名,并以其对应的操作命名。例如,Products 控制器的
"view()" 操作的
View 文件通常可以在 src/Template/Products/view.php 中找到。
简而言之,控制器(ProductsController)的名称与文件夹(Products)的名称相同,但没有Controller这个词和名称of 控制器(ProductsController)的动作/方法(view())与视图文件名(view.php)相同。
查看变量
视图变量是从控制器获取值的变量。我们可以根据需要在视图模板中使用任意数量的变量。我们可以使用
set() 方法将值传递给视图中的变量。这些设置的变量将在您的操作呈现的视图和布局中可用。以下是
set() 方法的语法。
Cake\View\View::set(string $var, mixed $value)
这个方法有两个参数-
变量的名字和
它的值。
示例
在
config/routes.php 文件中进行更改,如下面的程序所示。
config/routes.php
<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
// Register scoped middleware for in scopes.
$builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
'httpOnly' => true,
]));
$builder->applyMiddleware('csrf');
$builder->connect('template',['controller'=>'Products','action'=>'view']);
$builder->fallbacks();
});
在
src/Controller/ProductsController.php 中创建一个 ProductsController.php 文件。 将以下代码复制到控制器文件中。
src/Controller/ProductsController.php
<?php
declare(strict_types=1);
namespace App\Controller;
use Cake\Core\Configure;
use Cake\Http\Exception\ForbiddenException;
use Cake\Http\Exception\NotFoundException;
use Cake\Http\Response;
use Cake\View\Exception\MissingTemplateException;
class ProductsController extends AppController {
public function view(){
$this->set('Product_Name','XYZ');
}
}
在
src/Template 中创建目录 Products,然后在该文件夹下创建名为 view.php 的
View 文件。将以下代码复制到该文件中。
Value of variable is: <?php echo $Product_Name; ? >
通过访问以下 URL 执行上述示例。
http://localhost/cakephp4/template
输出
上述 URL 将产生以下输出。
