- Phalcon 教程
- Phalcon - 首页
- Phalcon - 概述
- Phalcon - 环境搭建
- Phalcon - 应用结构
- Phalcon - 功能
- Phalcon - 配置
- Phalcon - 控制器
- Phalcon - 模型
- Phalcon - 视图
- Phalcon - 路由
- Phalcon - 数据库连接
- Phalcon - 切换数据库
- Phalcon - 脚手架应用
- Phalcon - 查询语言
- Phalcon - 数据库迁移
- Phalcon - Cookie 管理
- Phalcon - Session 管理
- Phalcon - 多语言支持
- Phalcon - 资源管理
- Phalcon - 表单操作
- Phalcon - 对象文档映射器 (ODM)
- Phalcon - 安全特性
- Phalcon 有用资源
- Phalcon - 快速指南
- Phalcon - 有用资源
- Phalcon - 讨论
Phalcon - 视图
视图是呈现给最终用户的信息。视图可以被认为是一个网页,包含了要显示的适当响应。响应通过与模型交互的控制器接收。
具体来说,在 Phalcon 中,视图由 Volt 代码、PHP 和 HTML 组成。可以使用一组特殊的定界符进入 Volt 模式。{% ... %} 用于执行语句,例如 for 循环或赋值,而 {{ ... }} 将表达式的结果打印到模板中。
Phalcon 中的视图基本上分为两种类型:
- Volt
- phtml
Volt
以下是我们在上一章中为项目demo1创建的输出截图。
此输出是借助文件views/index/index.volt实现的。
Volt 文件的特点
它是一个用 C 语言编写的模板,与其他语言相比速度相当快。
它包含一组高度集成的组件,在 Phalcon 中非常有用。
它也可以用作独立组件。
Volt 编译成纯 PHP 代码。
以下是index.volt的代码,它在任何项目中默认加载。
<!--<div class = "page-header"> <h1>Congratulations!</h1> </div>--> <p>This is my first web application in Phalcon </p> <!--<p>You're now flying with Phalcon. Great things are about to happen!</p> <p>This page is located at <code>views/index/index.volt</code></p>-->
分层渲染
Phalcon 中的视图支持分层渲染,Phalcon\Mvc\View用作默认渲染组件。与使用 C 作为模板语言的 Volt 文件相比,此组件使用 PHP 作为模板引擎。
这些视图应具有.phtml扩展名。给定项目的视图的默认目录包含以下三个文件:
动作视图 - 此视图用于执行特定操作。当执行“show”操作时调用它。
控制器布局 - 此视图位于 layouts 文件夹内。例如,C:\xampp\htdocs\demo\app\views\layouts。它调用与相应控制器关联的方法调用。布局中实现的代码将在需要时实现。
主布局 - 此布局视图将调用主要操作,并将显示 web 应用程序中的每个控制器或操作。
.volt 和 .phtml 文件的区别
.volt | .phtml |
---|---|
当应用程序中设置的模板引擎是用 C 编写的时,使用 .volt 扩展名。 | .phtml 用于模板引擎是 PHP 本身的情况。 |
它可以用作独立组件。 | 它不能用作独立组件。 |
Volt 视图编译成 PHP 代码。 | phtml 文件本身包含 PHP 代码,因此在 Phalcon 框架中不需要编译。 |
变量
使用 'set' 在模板中赋值和更改变量。
声明数组
{% set fruits = ['Apple', 'Banana', 'Orange'] %}
声明字符串
{% set name = ”John Kennedy” %}
注释
也可以使用{# ... #}定界符向模板添加注释。最终输出中忽略它们内部的所有文本。
{# note: this is a comment {% set price = 100; %} #}
示例
{% set fruits = ['Apple', 'Banana', 'Orange'] %} <h1>Fruits</h1> <ul> {% for fruit in fruits %} <li>{{ fruit|e }}</li> {% endfor %} </ul> {% set robots = ['Voltron', 'Astro Boy', 'Terminator', 'C3PO'] %} <ul> {% for robot in robots %} <li>{{ robot }}</li> {% endfor %} </ul>
输出
代码将产生以下输出屏幕: