php配置控制器和视图位置,视图控制器
视图控制器
视图控制器是连接控制器和模板的桥梁, 更是对模板的强大扩展
基本用法
视图控制器文件夹位于 app\web\views 目录下, 视图控制器的名称是和控制器的名称相对应的, 并在结尾加上View, Main控制器的默认的视图控制器类名为MainView,内容如下:
namespace app\web\views;
use Cross\MVC\View;
class MainView extends View
{
function index($data = array())
{
if (! empty($data['data'])) {
$this->renderTpl("main/index", $data['data']);
}
if (! empty($data['user'])) {
$this->renderTpl("user/index", $data['user']);
}
}
}
如果有数据, 则加载对应的模板.
ajax返回的时候,不用返回公共的layer文件内容
指定模板文件后缀
在cp中, 默认的模板文件名后缀是.tpl.php, 在视图控制器中可以定义个成员变量来重新设置模板系统文件的后缀名
protected $tpl_file_ext_name = '.phtml';
此时模板文件名必须以.phtml结尾
HTML相关
a()方法用于生成超链接
img()方法用于生成图片连接
input() 处理表单中输入框
radio(), checkbox(), select 处理单/复选/下拉
htmlTag() 输出单独的html标签
wrap() 用于生成复杂的html
$this->wrap('div')
->wrap('span')
->a('crossphp', 'http://www.crossphp.com');
生成的html代码为
crossphp
更多使用方法请查看文档或在官方群内讨论
block() 输出带wrap()的块级元素
buildForm(表单模板名称), 把模板当表单载入, 可以在入口注册匿名函数buildForm来改变框架生成表单的行为
$this->on('buildForm', function(){
....
});
html()用于安全的输出html内容
布局相关方法
在视图控制器和模板中, 根据不同逻辑渲染不同模板.
section(模板名称, 模板数据, array 包裹的属性, 包裹器名称)
获取模板的文件路径
在视图控制器中调用$this->tpl('doc/read')获取templates/doc目录下read.tpl.php模板的绝对路径
渲染数据
传递数据并载入模板
this->renderTpl('doc/read', $data)
在templates/doc/read.tpl.php文件中, 使用$data来获取传递的数据
为布局文件中的变量赋值
在视图控制器中使用$this->set()方法为布局文件中的变量赋值
$this->set(array(
'uri' => $data['uri'],
'title' => $data ['title'],
'keywords' => $data ['keywords'],
));
生成资源文件路径
在视图控制器中使用$this->res()方法来生成资源文件的绝对路径
$this->res('css/style.css');
生成的连接为http://youdomain.com/static/css/style.css
获取或设置当前uri默认路径
$this->getLinkBase() 当前索引文件的uri, $this->setLinkBase(), 设置生成连接的前缀路径
获取当前app名称
$this->getAppName() 获取当前loadApp中的app名称
获取和设置模板文件的基础路径
$this->getTplBasePath() 和 $this->setTplBasePath()
获取模板路径
$->getTplPath() 获取当前模板文件夹路径
安全输出数组中的值
$this->e() 第一个参数为数组, 第二个参数为数组中的key, 第三个参数为默认值, 当数组中的key不存在时, 地上参数生效.
生成指定app名称的连接
$this->appUrl() 第一个参数为基础url, 第二个参数为app名称, 第三个参数为 控制器:方法 第四个参数为参数列表, 第五个参数标识是否生成加密连接
php配置控制器和视图位置,视图控制器相关推荐
- ASP.NET MVC 在控制器中获取某个视图动态的HTML代码
如果我们需要动态的用AJAX从服务器端获取HTML代码,拼接字符串是一种不好的方式,所以我们将HTML代码写在cshtml文件中,然后通过代码传入model,动态获取cshtml中的HTML代码 当然 ...
- .ne中的控制器循环出来的数据如何显示在视图上_【asp.net core 系列】3 视图以及视图与控制器...
0.前言 在之前的几篇中,我们大概介绍了如何创建一个http://asp.net core mvc项目以及http请求如何被路由转交给对应的执行单元.这一篇我们将介绍一下控制器与视图直接的关系. 1. ...
- IOS开发之视图和视图控制器
视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西.在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多.在UIKit框架中都有一 ...
- ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习
一.天降神器"剃须刀" - Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用W ...
- [译] 通过视图控制器容器和子视图控制器避免庞大的视图控制器
原文地址:Avoiding Massive View Controller using Containment & Child View Controller 通过视图控制器容器和子视图控制器 ...
- ASP.NET MVC 5 学习教程:控制器传递数据给视图
起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Se ...
- java控制器_Java用户界面 模型-视图-控制器(MVC)模式
Swing组件的MVC设计模式 在解决一个问题时,不需要从头做起,而是参考过去的经验,设计模式是一种方法,以一种结构化的形式展示了前人的经验. 前面提到过的Java中的AWT事件处理机制采用了&quo ...
- laravel mysql 视图_Laravel框架控制器,视图及模型操作图文详解
本文实例讲述了Laravel框架控制器,视图及模型操作.分享给大家供大家参考,具体如下: 鉴于上一篇Laravel框架下载,安装及路由操作我们讲到了路由,可能大家会觉得路由这个东西无所不,可路由这个东 ...
- 视图中获取控制器中数据的方式
在视图中获取控制器中数据的方式有两种: 一种是在控制器的操作中渲染视图时候分配模板数据,这种方式叫推送. 另外一种是在视图中手动获取控制器中的数据,包括控制器中的属性和方法及控制器id,通过$this ...
最新文章
- JavaScript toFixed() 方法
- 独家 | 可预测COVID-19病例峰值的新算法
- libuv 高性能事件驱动库 简介
- apollo数据库安装与常见错误说明
- django 轮播图上传_django之动态轮播图技术的实现
- 关于setTimeout和setInterval的函数参数问题
- JavaScript 如何工作:渲染引擎和性能优化技巧
- linux之SQL语句简明教程---CONCATENATE
- 桂林电子科技大学操作系统课程设计(一)
- webqq linux,Ubuntu下WebQQ桌面化替代方案完美版
- WSO2学习笔记(一)
- 防止刷票的一些方法介绍
- LTE网络PCI规划
- 国产CAD制图软件中怎么设置两点标注?
- 自定义函数实现英文字母大小写的转化
- 大众点评评论标签替换文字问题
- 西北大学Latex学位论文模板
- 利用逻辑分析仪测定单片机延时函数时间
- 联想笔记本昭阳K22-80重装win7纪要
- 北京通州规划图全面汇总
热门文章
- Effective C++ 1.0 -- 概述
- 手把手教你如何扩展GridView之自带CheckBox
- 戏说 .NET GDI+系列学习教程(三、Graphics类的应用_验证码)
- Https的底层原理
- PHP-----PHP程序设计基础教程----第四章数组
- BZOJ4491: 我也不知道题目名字是什么
- 程序员跳槽全攻略——读书笔记
- 【spring 5】AOP:spring中对于AOP的的实现
- iOS 中的网络请求 (同步请求、异步请求、GET请求、POST请求)
- Intellij IDEA单元测试提示Test events were not received