我在action里 $this->m = new Model('Curd'); 用M方法也试了 , 在model里有这个文件方法名字都对
但总提示
Table '3ghuashangdb.abcd' doesn't exist
[ SQL语句 ] : SHOW COLUMNS FROM `abcd`
他总把这个当表使 我这个只是个公用的model 没有这个表的
错误提示 复制错了 换名字 也不好使 感觉是 机制的问题 ?
$this->m = new CommonModel('Curd'); 这样写 也是不好使
thinkphp model 问题
答案:4 悬赏:80 手机版
解决时间 2021-02-27 19:57
- 提问者网友:棒棒糖
- 2021-02-27 02:28
最佳答案
- 五星知识达人网友:掌灯师
- 2021-02-27 03:03
但是这个前提是你的配置文件对了,配置文件的表前缀也要看好!要是确认了还是不能,就继续追问我,我帮你解决!
全部回答
- 1楼网友:不如潦草
- 2021-02-27 05:17
thinkphp的模型,默认情况是一个数据表对应一个model类.
创建 model类文件的方法是:
在model文件夹下创建 xxxmodel.class.php
例如:数据表名称 test
则在model文件夹下创建类文件:testmodel.class.php
可以用下面两种方法去创建一个数据表model对象:
第一种:$test = d('test')
第二种:$test = new model('test')
如果你的模型是没有确定的数据表可以对应(或者说需要操作多个数据表),在这种情况下,
tp提供了一个机制来解决这样的问题,尤其是你需要经常使用原生sql的时候,这个机制会非常有帮助。
下面来看一段代码:代码:
$model = new model();
$list = $model->query('select * from think_user where status=1');
当我们直接实例化model基类的时候,是不会进行任何数据库的连接的,也不会缓存任何数据表的字段信息,所以这个模型更加纯净一点,开销也相当比较小。
当然,并不是说,在这种方式下就只能使用原生查询,你可以很好的利用新版的连贯操作功能来查询数据。例如:代码:
$model = d(); // 和上面的new model()等效
// tp的连贯操作的优势之一就是可以动态设置要查询的数据表
$list = $model->field('id,name')->table('think_user')->where('status=1')->findall();
- 2楼网友:从此江山别
- 2021-02-27 04:17
thinkphp 中的model就是对应的数据库表 不错就见鬼了
- 3楼网友:骨子里都是戏
- 2021-02-27 03:08
model里就是数据表名 天生就这样
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯