美文网首页
ThinkPHP(四)

ThinkPHP(四)

作者: PHPer_ | 来源:发表于2017-08-21 16:09 被阅读206次

连贯操作之ORDER排序

order多个条件用逗号隔开

M('user')->order('age desc')->select();

连贯操作之field方法

field规定要查询的字段

M('user')->field('name')->order('age desc')->select();

连贯操作之limit和page方法

limit(start,length)传入开始位置以及数据长度

$data = M('user')
->field('name')
->order('age desc')
->limit(1,2)
->select();

最简单的分页方式page(页码,每页条数=20),TP自带有分页类

$data = M('user')
->field('id')
->page(1,5)
->select();

连贯操作之group和having方法

给定having条件进行group分组

$data = M('user')
->field('age,count(*) as total')
->having('age < 20')
->group('age')
->select();

多表查询之table方法

table(array('表名'=>'别名')) 这里多表查询时需要加表前缀

$data = M()
->table(array('onethink_shopgoods'=>'shop','onethink_shopcate'=>'cate'))
->where('cate.id=shop.cid')
->select();

多表查询之join方法

join默认情况下是inner join和左关联是一样的

M('shopgoods')->join('onethink_shopcate on onethink_shopcate.id=onethink_shopgoods.cid')->select();

右关联,以右表为基础匹配左表

M('shopgoods')->join('right join onethink_shopcate on onethink_shopcate.id=onethink_shopgoods.cid')->select();

多表查询之union方法

用于查询没有主从关系表数据
union查询出来的结果是去掉重复的

//查询字段时顺序不能颠倒
$data = M('shopgoods')
->field('name')
->union('select name from onethink_shopgood')
->select();

unionAll查询出来的结果是不去重的

$data = M('shopgoods')
->field('name')
->union('select name from onethink_shopgood',true)
->select();

多表查询之distinct方法

过滤查询distinct

$data = M('shopgoods')
->field('level')
->distinct(true)
->select();

命名范围scope的使用

在连贯操作过程中总是在写重复的规则,那么框架提供了一个新的功能命名范围,这个命名范围就是给模型定义一系列的连贯操作的封装,让我们查询起来更加的方便;
命名范围的好处是一次定义多次调用,在项目开发过程中可以作为项目分工配合的规范,避免在开发过程中写CURD的时候出现问题;

//在模型文件里进行封装
protected $_scope = array(
        'status' => array(
            'where' => array(
                'status' => array('eq',2),
            ),
            'order' => 'id desc',
        ),
        'ziduan' => array(
            'field' => 'name,id',
        ),
    );
//在控制器中进行调用
$model = D('Shopgoods');
$data = $model->scope('ziduan,status')->select();

如果两个命名范围定义存在冲突,则后面调用的命名范围规则会覆盖前面的,例如:limit;

相关文章

  • thinkphp四种url访问方式详解

    thinkphp四种url访问方式详解 本文实例分析了thinkphp的四种url访问方式,具体分析如下: 一、什...

  • ThinkPHP(四)

    连贯操作之ORDER排序 order多个条件用逗号隔开 连贯操作之field方法 field规定要查询的字段 连贯...

  • ThinkPHP(四)

    在阅读thinkPHP代码时,总是对命名空间不是完全的理解,今天想来系统介绍一下PHP的命名空间,如果你是大牛,请...

  • PHP全栈学习笔记20

    thinkphp概述,thinkphp项目构建流程,thinkphp项目结构,thinkphp配置,thinkph...

  • PHP全栈学习笔记20

    thinkphp概述,thinkphp项目构建流程,thinkphp项目结构,thinkphp配置,thinkph...

  • 学习thinkPHP的笔记

    学习thinkPHP的笔记 thinkPHP的文件结构的介绍 thinkPHP核心文件的介绍├─ThinkPHP....

  • Thinkphp6教程1:安装、开启多应用模式

    Thinkphp6安装 thinkphp6必须安装composer才能安装,命令: Thinkphp开启多应用 刪...

  • ThinkPHP基础知识

    一、获取ThinkPHP 获取ThinkPHP的方式很多,官方网站(http://thinkphp.cn)是最好的...

  • thinkphp View.php位置

    C:\Users\qwe\thinkPHP\thinkphp\library\think\view.php

  • ThinkPHP5入门系列

    【使用框架】 thinkphp.cn thinkphp 3.2版本

网友评论

      本文标题:ThinkPHP(四)

      本文链接:https://www.haomeiwen.com/subject/wsocdxtx.html