name方法

name方法的使用

1、功能:选择当前操作的数据表实例(省力表前缀)

2、源码位置:/thinkphp/library/think/db/Query.php

/**
     * 指定默认的数据表名(不含前缀)
     * @access public
     * @param string $name
     * @return $this
     */
    public function name($name)
    {
        $this->name = $name;
        return $this;
    }

3、参数与返回值:

  • 阅读源码发现:
    • 参数只有一个:不包括前缀的数据表名称;
    • 返回的是查询类Query的对象自身,便于后面链式调用。

4、适用环境:

  • 必须在数据库连接配置中,设置好数据表的前缀。

5、调用语法(以:tp5_staff表为例):

  • 通过 Db.php类中的:static _callStatic() 自动实现静态方法调用(了解即可)
  • 数据库类静态调用:Db::name('staff');

6、实例演示:

  • 省略前缀的表名)选择tp5_staff表,查询id等于1003的数据:
  • Index.php 控制器源文件:
<?php
namespace app\index\controller;

use think\Controller;
use think\Db;

class Index extends Controller {
    public function index(){ 

   dump(Db::name('staff')->find('1003'));
 } 

}
  • 运行结果:
array(7) {
  ["id"] => int(1003)
  ["name"] => string(6) "杨过"
  ["sex"] => int(0)
  ["age"] => int(35)
  ["salary"] => float(5303)
  ["dept"] => string(9) "市场部"
  ["hiredate"] => string(10) "2014-09-22"
}

7、局限性或注意事项:

  • name()方法选择数据表,简洁方便,与模型有点类似;
  • 不可以跨库操作,即不可指定数据库前缀;
  • 不可以设置表别名(因为当前表名不简称);

小作业:

  • 对照table方法,name方法显得简单多了,上机试一下吧~~