Eloquent 未在 table 名称末尾自动添加 s
Eloquent not adding automatically s at the end of table name
我有一个 Lumen 应用程序。
我刚刚用这个迁移文件创建了一个新的 TillSoftware 模型
Schema::create('till_softwares', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string("name", 120);
$table->timestamps();
});
但是当我只是运行一个像这样的简单请求时
$softwareList = TillSoftware::all();
我收到一条错误消息
Next Illuminate\Database\QueryException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'database.till_software' doesn't exist
它似乎没有在 table 名称的末尾添加通常的额外 s,并试图向 till_software 而不是 till_software 发出请求。
我还有 20 多个其他模型 运行ning 还不错,据我所知,软件的复数形式是软件。
我是不是遗漏了什么明显的东西?
我还可以加一个额外的
protected $table = 'till_softwares';
在我的模型上,但我更愿意了解我做错了什么。
感谢您的帮助。
因此 laravel 将使用 Str::plural()
查找模型名称的复数形式以查找 table 名称,因为这是标准名称。
>>> Str::plural('user')
=> "users"
所以这是 User
模型到 users
table
>>> Str::plural('software')
=> "software"
但软件的复数形式是软件,所以这就是 table 名称。
如果你想使用软件,你需要按照你说的去做
protected $table = 'till_softwares';
但我会说使用标准 table 名称是最好的,所以应该是 till_software
我有一个 Lumen 应用程序。 我刚刚用这个迁移文件创建了一个新的 TillSoftware 模型
Schema::create('till_softwares', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string("name", 120);
$table->timestamps();
});
但是当我只是运行一个像这样的简单请求时
$softwareList = TillSoftware::all();
我收到一条错误消息
Next Illuminate\Database\QueryException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'database.till_software' doesn't exist
它似乎没有在 table 名称的末尾添加通常的额外 s,并试图向 till_software 而不是 till_software 发出请求。 我还有 20 多个其他模型 运行ning 还不错,据我所知,软件的复数形式是软件。
我是不是遗漏了什么明显的东西? 我还可以加一个额外的
protected $table = 'till_softwares';
在我的模型上,但我更愿意了解我做错了什么。
感谢您的帮助。
因此 laravel 将使用 Str::plural()
查找模型名称的复数形式以查找 table 名称,因为这是标准名称。
>>> Str::plural('user')
=> "users"
所以这是 User
模型到 users
table
>>> Str::plural('software')
=> "software"
但软件的复数形式是软件,所以这就是 table 名称。
如果你想使用软件,你需要按照你说的去做
protected $table = 'till_softwares';
但我会说使用标准 table 名称是最好的,所以应该是 till_software