您好,欢迎访问一九零五行业门户网

php框架 - Thinkphp中D方法必须要有对应数据库吗?

之前做得一个小项目代码
class logincontroller extends controller { public function login(){ $admin = d('login'); //实例化admin模型 if ($admin->create()){ //创建数据模型 $user = i('post.name'); $this->session($user); $this->success('login success!',/hc_tp/admin); //跳转到内页面 }else { echo $this->error($admin->geterror()); } }}

这里调用d方法的数据表 前缀_login 是不存在的,
今天再重新做一个新的项目的时候提醒出现这个,提示数据表不存在
求解,忘了当时是搞了tp得配置还是怎么的
回复内容: 之前做得一个小项目代码
class logincontroller extends controller { public function login(){ $admin = d('login'); //实例化admin模型 if ($admin->create()){ //创建数据模型 $user = i('post.name'); $this->session($user); $this->success('login success!',/hc_tp/admin); //跳转到内页面 }else { echo $this->error($admin->geterror()); } }}

这里调用d方法的数据表 前缀_login 是不存在的,
今天再重新做一个新的项目的时候提醒出现这个,提示数据表不存在
求解,忘了当时是搞了tp得配置还是怎么的
模型对对应的数据表 默认是跟模型名同名的数据表
login模型默认对应login表,
如果不想这样对应,可以用
protected $tablename='tablename';
指定数据表名
think php里模型的名字必须是表名
d方法内部实现是实例化具体的数据表类
可以设置虚拟模型
class loginmodel extends model { protected $autockeckfields = false; //关闭检测字段}
不一定! 应该是d(modelname); 默认modelname 对应的是表名,不对应的话会报错, 但是可以通过
protected $autocheckfields = false; 来关闭自动对应, 这样你在model里就可以 随便m(任何表名)
其它类似信息

推荐信息