thinkphp3.2 mvc模式问题

liuxin2219 2018-04-06 04:20:59
文件:IndexController.classs.php

<?php
namespace Home\Controller;
use Think\Controller;

class IndexController extends Controller {

public function sql(){

$sql_db=D('User');
$re = $sql_db->get_one();
dump($sql_db);

}
}

文件:UserModel.class.php
<?php
namespace Home\Model;
use Think\Model;

class UserModel extends Model {

public function index(){
return "kkk";
}
public function get_one(){

$result = DB::query('select * from cn_news ');

return $result;
}
}
请问:在控制器sql方法中实例化User模型,为什么会报这个user表不存在,数据库没有user表的情况下,我怎么样才能调用UserModel.class.php文件中的get_one方法?
报错:1146:Table 'lidoway.lido_user' doesn't exist [ SQL语句 ] : SHOW COLUMNS FROM `lido_user`
...全文
735 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
木秀猿林 2018-04-08
  • 打赏
  • 举报
回复
引用 2 楼 w6248117 的回复:
你使用tp的D方法应该不管你建没建表你都访问不到你的UserModel类的get_one方法吧!因为你实例化的是UserModel类的父类Model类。你应该用new UserModel这样来实例化这样才能访问。如果你不想要初始化的时候去查询表字段就不要继承Model类。
还可以在UserModel类中关闭自动检测字段功能 //关闭自动检测表属性功能 Protected $autoCheckFields = false;
木秀猿林 2018-04-08
  • 打赏
  • 举报
回复
你使用tp的D方法应该不管你建没建表你都访问不到你的UserModel类的get_one方法吧!因为你实例化的是UserModel类的父类Model类。你应该用new UserModel这样来实例化这样才能访问。如果你不想要初始化的时候去查询表字段就不要继承Model类。
董哥007 2018-04-06
  • 打赏
  • 举报
回复
这个没法改 因为底层代码里控制了,你实例化的时候 他就去找表的,还有 你这个语法不是3系列的 是5把。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧