ThinkPHP第十六天(redirect、join、视图模型)
1、redirect
/**
* Action跳转(URL重定向) 支持指定模块和延时跳转
* access protected
* @param string $url 跳转的URL表达式
* @param array $params 其它URL参数
* @param integer $delay 延时跳转的时间 单位为秒
* @param string $msg 跳转提示信息
* return void
*/
protected function redirect($url,$params=array(),$delay=0,$msg='') {
$url = U($url,$params);
redirect($url,$delay,$msg);
}
使用$this->redirect()不用再用U函数了,其参数用法跟U函数完全一致,再redirect定义的时候已经U函数调用过。
2、Join连贯操作:
M('article')->join('user ON user.id=article.uid')->select();这样子JOIN查询出来的结果,如果article和user中有相同字段,后面会覆盖前面,对于这个问题,可以使用Field(article.id AS aid,user.id AS uid)方法或者Field(array(article.id=>aid,user.id=>uid)),来指定要查询两个(或多个表)中的字段(命名别名)。Field(数组或字符串,True/False),数组直接用键名和值得方式来命名别名。
JOIN对住 HAS_ONE和BELONGS_TO方式很有用,也可以采用视图模型方式来查询。
3、视图模型定义方式,在Model文件夹中新建 BlogViewModel.class.php
Class BlogViewModel extends ViewModel{//继承 ViewModel类
public $viewFields = array(//变量为 $viewFields
'blog'=>array('id'=>'bid','title','time','_type'=>'LEFT'),//表1为blog,要读取字段为id title time可以命名别名, _type关联类型为left join
'category'=>array('name','_on'=>'blog.cid=category.id'),//表2为category,要读取的字段为name,关联条件为 blog.cid=category.id
);
}
//'_'开始的都是特殊用途字
视图模型使用 D('BlogView')->select();可以在视图模型中定义一些公用函数,在控制器中减少代码重用。如function getAll()函数,则在视图层的时候直接
D('blogView')->getAll()就可以返回数据。
4、 控制网页的分页 page-break-after
ThinkPHP第十六天(redirect、join、视图模型)的更多相关文章
- ThinkPHP第二十六天(JQuery操作select,SESSION和COOKIE)
1.JQuery操作select,假设<select id="my"> A:双击选项<option>事件,应该是select的dbclick事件. B:获得 ...
- ThinkPHP 3.2.3 视图模型的使用
ThinkPHP 3.2.3 试图模型的手册地址是:http://www.kancloud.cn/manual/thinkphp/1781 实例 需求:在博客列表页读取博客的(id.标题.摘要.发布时 ...
- ThinkPHP中视图模型详解.
很多TP的新手对于模型中的视图模型不甚了解,官方虽然有详细手册,但是对于初学者来说还是比较难以理解! 先简单说一下视图模型所能实现的功能,基本就是主表与副表之间各个字段的关联问题,实现多表关联查询,相 ...
- Thinkphp 视图模型
1.创建视图模型 2.定义视图模型 class BlogViewModel extends ViewModel { public $viewFields = array( 'Blog'=>arr ...
- thinkphp 3.2 视图模型 实例 视图查询结果 二维数组 合并
使用视图模型查询的时候 结果是这样的 array(6) { [0] => array(5) { ["picTitle"] => string(7) "标题2& ...
- thinkphp 视图模型使用分析
<?php /** * 视图模型 * */ class ViewBatchModel extends ViewModel{ public $viewFields = array( 'Jinxia ...
- javaSE第二十六天
第二十六天 414 1:网络编程(理解) 414 (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享 414 (2)网络编程模型 414 (3)网络编程的三要素 ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- 当类型为dynamic的视图模型遭遇匿名对象
当年在ASP.NET MVC 1.0时代我提到,在开发时最好将视图的Model定制为强类型的,这样可以充分利用静态检查功能进行排错.不过有人指出,这么做虽然易于静态检查,但是定义强类型的Model类型 ...
随机推荐
- Web安全測试二步走
Web安全測试时一个比較复杂的过程,软件測试人员能够在当中做一些简单的測试,例如以下: Web安全測试也应该遵循尽早測试的原则,在进行功能測试的时候(就应该运行以下的測试Checklist安全測试场景 ...
- <转>机器学习笔记之奇异值分解的几何解释与简单应用
看到的一篇比较好的关于SVD几何解释与简单应用的文章,其实是有中文译本的,但是翻译的太烂,还不如直接看英文原文的.课本上学的往往是知其然不知其所以然,希望这篇文能为所有初学svd的童鞋提供些直观的认识 ...
- zoj 1025Wooden Sticks(贪心)
递增子序列的最小组数.可以直接贪心,扫一遍 #include<iostream> #include<cstring> #include<cstdio> #inclu ...
- Matlab中取模(mod)与取余(rem)的区别
取模(mod)与取余(rem)是不同的,通常取模运算也叫取余运算,它们返回结果都是余数. rem和mod唯一的区别在于: 当x和y的正负号一样的时候,两个函数结果是等同的:当x和y的符号不同时,rem ...
- sql server 2008 设计时 不允许保存更改
什么 都不说了 上图
- 最小生成树Jungle Roads
这道题一定要注意录入方式,我用的解法是prime算法 因为单个字符的录入会涉及到缓冲区遗留的空格问题,我原本是采用c语言的输入方法录入数据的,结果对了,但是提交却一直wrong,后来改成了c++的ci ...
- BZOJ 2946: [Poi2000]公共串( 后缀自动机 )
一个串建后缀自动机, 其他串在上面跑, 然后用当前串跑的去更新全部 ------------------------------------------------------------------ ...
- ROS开发文档
http://docs.ros.org/indigo/api/roscpp/html/classros_1_1NodeHandle.html#af0bf7baa0ab2385275bb657cc358 ...
- java使用验证码进行登录验证
随机生成4位验证码,将生成的4位数字字母数字放入session private static void outputVerifyCode(HttpServletRequest request, Htt ...
- 如何实现win7和VirtualBox中Ubuntu系统共享文件夹
设备: 1.win7 旗舰版 2.VirtualBox虚拟机 3.Ubuntu12.04 以前在VM虚拟机中可以直接进行复制就可以将win7系统的文件复制到虚拟机中,然后现在安装了Virt ...