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 ...
最新文章
- JAVA正则表达式高级用法(分组与捕获)
- QuickMock:基于Express的快速mock平台
- oracle 数据库的非指令备份方法
- C# char[]与string之间的相互转换
- 【kmp】POJ-3461 Oulipo
- 适应adblock plus 规则的简单正则表达式匹配
- 莫烦Python机器学习
- 国家海洋局事业单位公开招聘考试大纲2016
- 阅读笔记——基于CART决策树的计算机网络课程学生成绩分析
- mysql卸载后重装不_mysql卸载无法重装怎么办?
- 恢复计算机个性化设置方法,Win7主题默认还原电脑用了主题软件没办法恢复完美解决系统主-win7主题...
- HttpClient模拟请求
- 【唐诗学习】五、山水田园诗派代表
- NFA到DFA的转化
- 阿里云小程序时代来临,中小企业和商家该如何入局
- 稳压二极管稳压电路如何设计
- html去图片平铺效果,css如何把图片平铺?
- 嵌入式系统驱动高级【5】——input子系统
- URL详细分析及在python中处理URL
- 【Python代码基础(符号篇2)】