Php Eloquent找不到以'datas'结尾的表`
我在Laravel 6.6中制作了一个DB表,以Php Eloquent找不到以'datas'结尾的表`,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我在Laravel 6.6中制作了一个DB表,以数据结尾,如下所示: C:\xampp\htdocs\voiceit> php artisan make:migration create_org_datas_table Created Migration: 2019_12_16_094613_create_org_datas_table 我尊重Laravel ORM需要表的复数名称的规则。此外,我还生成了相关模型、控制器和资源: C:\xampp\htdocs\voiceit> p
数据结尾,如下所示:
C:\xampp\htdocs\voiceit> php artisan make:migration create_org_datas_table
Created Migration: 2019_12_16_094613_create_org_datas_table
我尊重Laravel ORM需要表的复数名称的规则。此外,我还生成了相关模型、控制器和资源:
C:\xampp\htdocs\voiceit> php artisan make:controller API\OrgDataController --api -m OrgData
Controller created successfully.
C:\xampp\htdocs\voiceit> php artisan make:resource OrgData
Resource created successfully.
最后我做了迁移:
C:\xampp\htdocs\voiceit> php artisan migrate
我手动检查了数据库,它在数据库中正确地生成了org\u数据表
但是,当我尝试运行以下简单查询时:
$orgDatas = OrgData::all();
它会生成以下错误:
“SQLSTATE[42S02]:找不到基表或视图:1146表
“mjzsoft.org\u数据”不存在(SQL:select*from org\u数据)
如果在模型中添加以下代码行,则可以找到表:
class OrgData extends Model
{
protected $table = 'org_datas';
}
现在的问题是,data
是一个特例,还是因为data
这个词没有复数形式或其他形式?如果是这种情况,那么*\u信息也不能起作用,我需要为Laravel澄清表名!?或者可能我遗漏了一些无法检测到表的正确名称的内容 评论指出,这对英语使用者来说不是一个值得怀疑的问题,你可以看看Laravel的复数化器,它指出,数据
已被明确标识为一个不会与其他单词列表一起复数的单词。数据
是复数形式,数据
的复数形式是数据
,数据
的复数形式是数据
。。。因此,data
对于复数形式是不可数的,您可能需要在模型中明确指定表名正如我所说,我已经做到了。这不是问题所在。我想知道的是,Laravel artisan是否检查了英语词典,然后就查询中的表名做出决定????如果我把表名建立在德语的基础上,那么会发生什么?是的,它是基于英语的,使用了复数,它定义了规则和例外以及其他库来确定这些单词。。。如果您不希望自己“猜测”命名约定,只需自己定义表名即可;直截了当并没有什么错我认为你们是在创造一种方式来关注一些已经被清楚解释的事情。为什么,在我的职业生涯中,我创造了多个模型,这一点都不是问题。谢谢。这就是我要找的名单。音频、野牛、牛、底盘、补偿、coreopsis、数据、鹿、教育、表情符号、设备、证据、反馈、固件、鱼、家具、黄金、硬件、信息、绝地、亲属、知识、爱情、元数据、金钱、驼鹿、新闻、营养、后代、浮游生物、口袋妖怪、警察、雨水、推荐、相关、大米、系列、绵羊、软件、物种、,猪,交通,小麦。所以现在很明显,它没有使用任何字典。