• 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

  • 相关阅读:
    Git远程操作详解
    Markdown介绍
    Git & GitHub 学习
    小甲鱼Python笔记(类)
    小甲鱼Python笔记(下)
    小甲鱼Python笔记(上)
    compare.go
    compact_op.go
    cluster.go
    client.go
  • 原文地址:https://www.cnblogs.com/huilange/p/3407679.html
Copyright © 2020-2023  润新知