Laravel Modding:使用单表名称生成模型

我见过的开发人员最常见的习惯之一就是坚持他们从上学或上大学初期就学到的约定。 一个很好的例子是数据库表的单数名词(认为“ team”优于“ teams”)。 这是经常被教的东西,但实际上,在创建应用程序时选择的东西没有任何区别。 但是,有时Laravel确实会出现问题。 Artisan的make model命令(进行迁移时)和模型本身默认情况下期望表名为复数。

尽管重要的是表名保持不变,不仅是让事物遵循设定的模式看起来更好,而且这还意味着开发人员不必记住在构建时哪些表以单数形式命名和哪些是复数形式。手动查询。 最终,当您使用单一的表名(或者可能是从旧版应用迁移数据库)时,这很难维护,但是如果像许多人一样使用make model命令执行操作,您将忘记确保所有模型和迁移都匹配。生成新模型等

如何与多个表格名称作斗争

实际上,仅需简单的命令即可替换Laravel框架中的命令即可解决此问题。 我们可以通过从artisan控制台快速生成一个新命令来做到这一点:

  PHP工匠make:command ModelMakeCommand 

然后,这给了我们文件app/Console/Commands/ModelMakeCommand.php进行编辑。 首先,我们最好清除所有内容,因为我们不需要句柄或构造方法。 通过默认命令,我们也不需要签名和描述属性。

接下来要做的是更改我们新的ModelMakeCommand的继承。 除了扩展Illuminate\Console\Command我们还需要扩展Illuminate\Foundation\Console\ModelMakeCommand 。 为此,我个人喜欢在use语句中设置别名并使用别名,因此我们将其BaseCommand 。 当前,我们的新命令应如下所示。

希望通过阅读本文,您现在可以了解如何始终扩展和更改Laravel提供的命令,以针对您自己的应用程序的需求进行更多定制。

如果您想整体看一下代码,可以在GitHub上看一下。