thinkphp5在model中切换表前缀
程序员文章站
2022-05-20 10:56:20
...
原因
因为最近在做的东西有多个表前缀,不同的model中需要用不同表前缀的数据表,所以数据库配置文件中的统一表前缀就成了麻烦
方法
在相应的model(需要继承Model)中,定义一个table变量
class ExampleModel extends Model {
protected $table = '完整的数据表名';
//......你的代码
}
原因
$table是个从父类继承来的变量,可以追踪到这是在Query.php中定义的变量
从上图中可以看到,本来是有一个专门的变量$prefix设置表前缀的,但是我试了并不能改变model用的表前缀,所以退而求其次,改用$table,在我们的model中设置完整的数据表名,测试可以成功。