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