问题描述
SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘stimmer.menublock’ doesn’t exist
出现这总情况呢,一般是某某数据表没有找到。但是有时候把我们明明实例化了模型,但就是提示表没有找到。出现这种情况一般是模型没有数据表对应起来。
那么是什么问题导致的呢?
解决办法:
这是因为Model命名不规范导致的问题。
把Model文件的名字改为:UserType.php,类名改成:UserType,即可解决该问题
ThinkPHP5.0的文档中有这样的描述:
模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,例如:
模型名 | 约定对应数据表(假设数据库的前缀定义是 think_) |
---|---|
User | think_user |
UserType | think_user_type |
如果数据表没有前缀,和上面的命名方式也是相同的
模型名 | 约定对应数据表 |
---|---|
User | user |
UserType | user_type |
如果Model的命名规范的话就不会出现上面的问题(你也可以认为模型名除了第一个大写字母之外,其他的大写字母可以看成一个"_"+这个字母)