thinkphp5在模型(model)中设置表前缀

tp5在model中切换表前缀,thinkphp5单独设置表前缀(prefix)的方法

根据官方手册

5.0不支持单独设置当前模型的数据表前缀。 

也就是说你直接设置 $tablePrefix / $prefix 是没有效果的。

但是和配置数据库的参数一样,我们可以设置当前模型的数据库连接 connection ,属性的值可以设置为数据库的配置参数,而且也是官方推荐的方式,这样可以避免把数据库连接固化在代码里面。

模型 - 设置数据表

这里仅配置一个 prefix 即可,同理也可以设置一些其它与默认数据库配置不一样的配置项。

例:

namespace app\index\model;

class User extends \think\Model{
    
    // 设置当前模型的数据库连接
    protected $connection = [
        // 数据库表前缀
        'prefix'      => 'think_',
    ];
}

如果你想指定数据表的话,可以使用:

namespace app\index\model;

class User extends \think\Model
{
    // 设置当前模型对应的完整数据表名称
    protected $table = 'think_user';

}

thinkphp5.1 版本

如果你想指定数据表甚至数据库连接的话,可以使用:

namespace app\index\model;

use think\Model;

class User extends Model
{
    // 设置当前模型对应的完整数据表名称
    protected $table = 'think_user';

    // 设置当前模型的数据库连接
    protected $connection = 'db_config';
}

connection 属性的建议用配置参数名(需要在 database.php 中添加)而不是具体的连接信息,从而避免把数据库连接固化在代码里面。

 

参考链接:

  • ThinkPHP5.0完全开发手册 - 模型- 设置数据表
  • ThinkPHP5.1完全开发手册 - 模型- 模型设置

你可能感兴趣的:(PHP,#,thinkphp)