ThinkPHP中对于特殊表的实例化操作

本文介绍了在ThinkPHP框架中如何处理具有特殊表名(如无前缀或非配置文件定义的前缀)的实例化操作。通过创建模型文件并指定实际数据表名,可以避免系统默认添加的表前缀,确保模型正确关联到目标表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ThinkPHP中对于特殊表的实例化操作

在实际开发的时候可能会遇到有特殊表的情况,可能表会没有前缀、表的前缀不是在配置文件中定义的前缀。

模拟出一张特殊表:

创建模型文件:

命名:TeshubiaoModel.class.php

<?php

//命名空间
namespace Admin\Model;
//引入父类
use Think\Model;
//声明模型并继承父类
class TeshubiaoModel extends Model{
	
}

 

teshubiao类的实例化操作:

    //特殊类的实例化操作
    public function test(){
        //实例化模型
        $model = D('Teshubiao');
        dump($model);
    }


实例化结果:

分析原因:是因为在实例化的时候系统会默认给我们添加上之前在配置文件中定义的表前缀,这个时候表名就变成了oa_teshubiao

解决办法:

    // 实际数据表名(包含表前缀)
    protected $trueTableName    =   '';

可以通过父类模型中的实际数据表名(包含表前缀)的声明来进行表名的指定,告知模型表名真实名字是什么,让其不要再关联上前缀。

<?php

//命名空间
namespace Admin\Model;
//引入父类
use Think\Model;
//声明模型并继承父类
class TeshubiaoModel extends Model{
	    // 实际数据表名(包含表前缀)
    protected $trueTableName    =   'teshubiao';
}

实例化模型结果正常:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值