错误:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'xxx' doesn't exist
看看你属于那种情况
例子1:模型名称与数据库的表名一致
数据库前缀datacms_
例子1:模型名称与数据库的表名不一致
protected $name = 'admin'; //定义LoginModel模型对应表名是datacms_admin的数据库
重新定义对应的表
官方文档:https://www.kancloud.cn/manual/thinkphp6_0/1037580
常用的模型设置属性包括(以下属性都不是必须设置):
属性 | 描述 |
name | 模型名(相当于不带数据表前后缀的表名,默认为当前模型类名) |
table | 数据表名(默认自动获取) |
suffix | 数据表后缀(默认为空) |
pk | 主键名(默认为 |
connection | 数据库连接(默认读取数据库配置) |
query | 模型使用的查询类名称 |
field | 模型允许写入的字段列表(数组) |
schema | 模型对应数据表字段及类型 |
type | 模型需要自动转换的字段及类型 |
strict | 是否严格区分字段大小写(默认为true) |
disuse | 数据表废弃字段(数组) |
例子2:模型名称与数据库的表名不一致
<?php
namespace app\admin\model;
use think\Model;
use think\Facade\Db;
use think\facade\View;
// use app\admin\model\CommonModel;
class CommonModel extends Model
{
protected $name = 'menu'; //定义LoginModel模型对应表名是datacms_menu的数据库
public function CommonDel($dataname,$where,$uid,$type='',$dataname2='',$where2=[]){
\var_dump(22);
$rs = Db::name('admin')->where('id',1)->find();
\var_dump($rs);exit;
}
重点: