位置: 编程技术 - 正文

PHP的Yii框架中创建视图和渲染视图的方法详解(php框架选择2021)

编辑:rootadmin

推荐整理分享PHP的Yii框架中创建视图和渲染视图的方法详解(php框架选择2021),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php框架运行机制,php各大框架以及实现原理,php各大框架以及实现原理,php框架ci,php框架ci,php框架symfony,php框架ci,php框架ci,内容如对您有帮助,希望把文章链接给更多的朋友!

视图是 MVC 模式中的一部分。 它是展示数据到终端用户的代码,在网页应用中,根据视图模板来创建视图,视图模板为PHP脚本文件, 主要包含HTML代码和展示类PHP代码,通过yiiwebView应用组件来管理, 该组件主要提供通用方法帮助视图构造和渲染,简单起见,我们称视图模板或视图模板文件为视图。

创建视图

如前所述,视图为包含HTML和PHP代码的PHP脚本,如下代码为一个登录表单的视图, 可看到PHP代码用来生成动态内容如页面标题和表单,HTML代码把它组织成一个漂亮的HTML页面。

在视图中,可访问 $this 指向 yiiwebView 来管理和渲染这个视图文件。

除了 $this之外,上述示例中的视图有其他预定义变量如 $model, 这些变量代表从控制器或其他触发视图渲染的对象 传入 到视图的数据。

技巧: 将预定义变量列到视图文件头部注释处,这样可被IDE编辑器识别,也是生成视图文档的好方法。安全

当创建生成HTML页面的视图时,在显示之前将用户输入数据进行转码和过滤非常重要, 否则,你的应用可能会被跨站脚本 攻击。

要显示纯文本,先调用 yiihelpersHtml::encode() 进行转码,例如如下代码将用户名在显示前先转码:

要显示HTML内容,先调用 yiihelpersHtmlPurifier 过滤内容,例如如下代码将提交内容在显示前先过滤:

技巧:HTMLPurifier在保证输出数据安全上做的不错,但性能不佳,如果你的应用需要高性能可考虑 缓存 过滤后的结果。

组织视图

与 控制器 和 模型 类似,在组织视图上有一些约定:

控制器渲染的视图文件默认放在 @app/views/ControllerID 目录下, 其中 ControllerID 对应 控制器 ID, 例如控制器类为PostController,视图文件目录应为 @app/views/post, 控制器类 PostCommentController对应的目录为@app/views/post-comment, 如果是模块中的控制器,目录应为 yiibaseModule::basePath 模块目录下的views/ControllerID 目录;对于 小部件 渲染的视图文件默认放在 WidgetPath/views 目录, 其中 WidgetPath 代表小部件类文件所在的目录;对于其他对象渲染的视图文件,建议遵循和小部件相似的规则。可覆盖控制器或小部件的 yiibaseViewContextInterface::getViewPath() 方法来自定义视图文件默认目录。

渲染视图

PHP的Yii框架中创建视图和渲染视图的方法详解(php框架选择2021)

可在 控制器, 小部件, 或其他地方调用渲染视图方法来渲染视图, 该方法类似以下格式:

控制器中渲染

在 控制器 中,可调用以下控制器方法来渲染视图:

yiibaseController::render(): 渲染一个 视图名 并使用一个 布局 返回到渲染结果。 yiibaseController::renderPartial(): 渲染一个 视图名 并且不使用布局。 yiiwebController::renderAjax(): 渲染一个 视图名 并且不使用布局, 并注入所有注册的JS/CSS脚本和文件,通常使用在响应AJAX网页请求的情况下。 yiibaseController::renderFile(): 渲染一个视图文件目录或别名下的视图文件。

例如:

小物件小物件是 CWidget 或其子类的实例.它是一个主要用于表现数据的组件.小物件通常内嵌于一个视图来产生一些复杂而独立的用户界面.例如,一个日历小物件可用于渲染一个复杂的日历界面.小物件使用户界面更加可复用.

我们可以按如下视图脚本来使用一个小物件:

或者

后者用于不需要任何 body 内容的组件.

小物件可通过配置来定制它的表现.这是通过调用 CBaseController::beginWidget 或 CBaseController::widget 设置其初始化属性值来完成的.例如,当使用 CMaskedTextField 小物件时,我们想指定被使用的 mask (可理解为一种输出格式,译者注).我们通过传递一个携带这些属性初始化值的数组来实现.这里的数组的键是属性的名称,而数组的值则是小物件属性所对应的值.正如以下所示 :

继承 CWidget 并覆盖其init() 和 run() 方法,可以定义一个新的小物件:

小物件可以像一个控制器一样拥有它自己的视图.默认情况下,小物件的视图文件位于包含了小物件类文件目录的 views 子目录之下.这些视图可以通过调用 CWidget::render() 渲染,这一点和控制器很相似.唯一不同的是,小物件的视图没有布局文件支持。另外,小物件视图中的$this指向小物件实例而不是控制器实例。

视图中渲染

可以在视图中渲染另一个视图,可以调用yiibaseView视图组件提供的以下方法:

yiibaseView::render(): 渲染一个 视图名. yiiwebView::renderAjax(): 渲染一个 视图名 并注入所有注册的JS/CSS脚本和文件,通常使用在响应AJAX网页请求的情况下。 yiibaseView::renderFile(): 渲染一个视图文件目录或别名下的视图文件。

例如,视图中的如下代码会渲染该视图所在目录下的 _overview.php 视图文件, 记住视图中 $this 对应 yiibaseView 组件:

其他地方渲染

在任何地方都可以通过表达式 Yii::$app->view 访问 yiibaseView 应用组件, 调用它的如前所述的方法渲染视图,例如:

PHP的Yii框架中View视图的使用进阶 视图名渲染视图时,可指定一个视图名或视图文件路径/别名,大多数情况下使用前者因为前者简洁灵活,我们称用名字的视图为视图名.视图名可以依据

PHP实现可自定义样式的分页类 本文实例为大家分享了PHP实现可自定义样式的分页类,供大家参考,具体内容如下php//namespaceComponent;/***-3-*@authorankang*/classPage{private$ShowPage;private$Coun

深入解析PHP的Yii框架中的缓存功能 数据缓存是指将一些PHP变量存储到缓存中,使用时再从缓存中取回。它也是更高级缓存特性的基础,例如查询缓存和内容缓存。如下代码是一个典型的

标签: php框架选择2021

本文链接地址:https://www.jiuchutong.com/biancheng/293313.html 转载请保留说明!

上一篇:PHP的Yii框架中Model模型的学习教程(php framework框架)

下一篇:PHP的Yii框架中View视图的使用进阶(php框架symfony)

  • 税负税负率与税率区别?
  • 小规模纳税人税率2023年是多少
  • 未完工程如何处理
  • 个体工商户需要交税吗?怎么交?
  • 所得税预缴申报表资产总额怎么填
  • 开矿泉水发票怎么开?
  • 小规模企业每月能开多少专票
  • 实缴注册资本交税吗
  • 微信支付属于现金嘛
  • 基本户没有注销对法人有影响吗
  • 企业股权转让是否交企业所得税
  • 当月勾选认证的原材料与当月领用的原材料区别
  • 怎么从银行买承兑汇票
  • 公司从银行贷款需要交税吗
  • 另一个公司代付公司的水电费
  • 低值易耗品一次性摊销体现重要性
  • 固定资产忘了折旧有什么影响
  • 运输公司购买运输车辆保险进什么科目
  • 自然人独资属于个体工商户吗?
  • 销售货物或者提供应税劳务、服务清单怎么开
  • 个人转租房屋的法律规定
  • 增值税专用发票抵扣期限
  • 个人所得税期末为负数审计调整
  • 发票联丢失能用抵扣联入账吗
  • 专用发票百万元版申请要求
  • 应付账款借方余额怎么平账
  • 遗属补助是死亡当月发放还是次月发放
  • window10最新20h2
  • 购买方已抵扣申请红票,销售方为开具 购买方如何作废
  • 补记以前年度收入怎么做账
  • ccc.exe是什么进程
  • 费用发生了 没有发票该如何记账
  • 融资租赁会计处理小企业会计准则
  • 软件研发支出计入什么科目
  • 科目余额表平了但资产负债表不平
  • phpsubstr方法参数
  • 基于微信小程序制作
  • 税务稽查补税
  • 项目终止前期费用核销
  • 管理费用核算的是
  • 以前年度损益调整会计分录
  • 收到失业保险稳岗补贴怎么做会计分录
  • 小轿车折旧年限规定
  • 公司房租发票是法人名字能入账吗安全吗
  • 预收账款如何做账务处理
  • 涉外收入申报单怎么填
  • 原材料保险公司赔偿会计分录怎么写
  • 委托加工业务经常出现的涉税错误有哪些
  • 港口建设费收费标准
  • 企业控股情况怎么看
  • 实收资本怎么入账?
  • sqlserver数据库恢复挂起状态
  • sql游标用法
  • window10右击
  • 2tb的硬盘够用吗
  • 强化廉洁意识 筑牢思想防线
  • Windows Server 2008故障转移群集简介
  • 用虚拟光驱安装系统教程
  • 手把手教你安装实木门
  • 电脑开机时进入安全模式怎么退出
  • pps影音怎么没有了
  • linux系统批量查找替换多个字符
  • 13寸的macbook
  • g++编译debug
  • unity3d怎么编程
  • bootstrap轮播插件
  • Linux Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点
  • 用python编写程序
  • css模糊滤镜
  • javascript运用
  • iframe的替代方案
  • python第三方库文档怎么看
  • JavaScript中的方法名不区分大小写
  • gps坐标计算距离公式工具
  • 残疾人个人所得税减免政策
  • 北京社保退保手续办理
  • 河南个人社保查询登录入口官网
  • 北京市大兴区税务局电话
  • 税务社保费是什么意思
  • 一人可以在多家企业上班吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设