Eloquent 找不到以 `datas` 结尾的表

我在 Laravel 6.6 中创建了一个数据库表,其结尾datas如下:


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_datas在数据库中正确生成了表。


但是,当我尝试运行这样的简单查询时:


$orgDatas = OrgData::all();

它会产生以下错误:


“SQLSTATE [42S02]:未找到基表或视图:1146 表 'mjzsoft.org_data' 不存在(SQL:从 org_data 中选择 *)”


如果在模型中添加以下代码行,则可以找到该表:


class OrgData extends Model

{

    protected $table = 'org_datas';

}

现在的问题是,这data是一个特例还是因为这个词data没有复数形式或其他什么?如果是这种情况,那么*_informations也不能工作,我需要为 Laravel 澄清表的名称!?或者我错过了一些它没有检测到正确的表名称的东西!?


哔哔one
浏览 142回答 1
1回答

撒科打诨

正如评论所说,这对于说英语的人来说不是一个有问题的问题,您可以查看 Laravel 的Pluralizer laravel/frameork/Illuminate/Support/Pluralizer.php,其中指出data已明确标识为不会与 a 一起复数的单词其他单词列表。
打开App,查看更多内容
随时随地看视频慕课网APP