使用make:model指令生产的模型和迁移文件,为什么不自动加s了

1. 运行环境#

Apache/2.4.59 (Unix) OpenSSL/3.3.0 PHP/8.3.6 |

1). 当前使用的 Laravel 版本?#

Laravel 11.14.0

2). 当前使用的 php/php-fpm 版本?#

PHP 版本:PHP 8.3.6 (cli) (built: Apr 10 2024 14:21:20) (NTS)
php-fpm 版本:

3). 当前系统#

Mac OS Sonoma 14.6.1

4). 业务环境#

开发环境

5). 相关软件版本#

MariaDB10

2. 问题描述?#

使用 php artisan make:model Staff -m 创建 staff 模型和迁移文件,实际产生数据库表名为 staff,并不是 staffs,迁移文件也是不带 s 的。
视频教程里相同的命令,生产的表格会自动是模型名 + s,以前使用 Laravel 时也是自动加 s,
问题:
1、如何实现使用上述命令,创建的表格自动带 s;
2、如果表格名不带 s,Laravel 的多表关联操作时会不会有影响?是否不符合 Laravel 的命名规范?

3. 您期望得到的结果?#

能解决上述问题的方案

4. 您实际得到的结果?#

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

staff 单复数同形,除了常规的 s,还有其他形式,如:

➜  laravel git:(main) ✗ artisan tinker
Psy Shell v0.12.3 (PHP 8.2.22 — cli) by Justin Hileman
> Str::plural('staff')
= "staff"

> Str::plural('butterfly')
= "butterflies"

> Str::plural('person')
= "people"

默认的表名称会使用这些复数形式:

➜  laravel git:(main) artisan make:model -m Staff

   INFO  Model [app/Models/Staff.php] created successfully.

   INFO  Migration [database/migrations/2024_08_29_005520_create_staff_table.php] created successfully.

➜  laravel git:(main) ✗ artisan make:model -m Butterfly

   INFO  Model [app/Models/Butterfly.php] created successfully.

   INFO  Migration [database/migrations/2024_08_29_005526_create_butterflies_table.php] created successfully.

➜  laravel git:(main) ✗ artisan make:model -m Person

   INFO  Model [app/Models/Person.php] created successfully.

   INFO  Migration [database/migrations/2024_08_29_005531_create_people_table.php] created successfully.

如果一定要用 staffs 表名,也可以自己加下,然后设置下,参考 laravel.com/docs/11.x/eloquent#tab...

9个月前 评论
yadonghx (楼主) 9个月前

staff 单复数同形,除了常规的 s,还有其他形式,如:

➜  laravel git:(main) ✗ artisan tinker
Psy Shell v0.12.3 (PHP 8.2.22 — cli) by Justin Hileman
> Str::plural('staff')
= "staff"

> Str::plural('butterfly')
= "butterflies"

> Str::plural('person')
= "people"

默认的表名称会使用这些复数形式:

➜  laravel git:(main) artisan make:model -m Staff

   INFO  Model [app/Models/Staff.php] created successfully.

   INFO  Migration [database/migrations/2024_08_29_005520_create_staff_table.php] created successfully.

➜  laravel git:(main) ✗ artisan make:model -m Butterfly

   INFO  Model [app/Models/Butterfly.php] created successfully.

   INFO  Migration [database/migrations/2024_08_29_005526_create_butterflies_table.php] created successfully.

➜  laravel git:(main) ✗ artisan make:model -m Person

   INFO  Model [app/Models/Person.php] created successfully.

   INFO  Migration [database/migrations/2024_08_29_005531_create_people_table.php] created successfully.

如果一定要用 staffs 表名,也可以自己加下,然后设置下,参考 laravel.com/docs/11.x/eloquent#tab...

9个月前 评论
yadonghx (楼主) 9个月前

file 同上,这就涉及到英文了 (毕竟是国外的框架), 不是所有词汇都 + s

9个月前 评论
yadonghx (楼主) 9个月前
sanders

file

9个月前 评论
yadonghx (楼主) 9个月前
小李世界 9个月前