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 中添加)而不是具体的连接信息,从而避免把数据库连接固化在代码里面。
参考链接: