如何在Laravel中通过雄辩的方式向模型中添加字段?

时间:2016-09-27 06:48:01

标签: php laravel eloquent

我的问题是,是否可以通过Eloquent将所有字段直接添加到新模型中。

我想这会像

php artisan make:model MyModel --fields=?

然而,我找不到与此有关的任何事情。无论如何,我必须生成很多模型,任何技巧都会非常感激。

提前致谢

5 个答案:

答案 0 :(得分:1)

如果你的意思是fields的表格,那么:

首先,您无需在模态中定义fields。我的意思是在Laravel中创建模型时无需定义fields。此外,模型自动使用数据库表的列作为其属性。

因此,现在您可能希望在创建迁移时定义列,而不是在创建模型时定义列。有一个库可以满足由Laracasts维护的名为Generatorhttps://github.com/laracasts/Laravel-5-Generators-Extended)的需求。

使用此生成器,您可以生成迁移文件以在DB中创建表,同时指定列名称及其类型。这是他们的Github回购中的一个例子,你如何做到这一点:

php artisan make:migration:schema create_users_table --schema="username:string, email:string:unique"

您可以查看他们的文档以获取更多信息。祝你好运。

答案 1 :(得分:0)

使用make:modelmake:migrations命令是不可能的,但您可以create your own console command并自行添加此功能。

另外,请查看make:modelmake:migration命令的源代码,以了解如何执行此操作。

答案 2 :(得分:0)

看起来只有内置选项--migration-m才能包含模型生成的迁移。 L5.3 Docs

看起来有一个L5.0的包,看起来它可以在5。* +中使用。它由Laracasts推出:

https://github.com/laracasts/Laravel-5-Generators-Extended

看起来您也可以制作自定义解决方案:

https://laracasts.com/discuss/channels/tips/l5-artisan-command-makemodel

希望有所帮助!

答案 3 :(得分:0)

创建模型时没有选项,

这是我的终端输出(laravel 5.3),当我检查时,

model migration

创建模型时,您不需要提及字段。

例如: - 根据规则,你应该保留名称,如下所示,

型号名称为用户
  表名为用户

然后模型自动处理所有内容,您不需要提及表/字段名称。

答案 4 :(得分:0)

我自己一直在寻找相同的东西,因为我以前在以前的框架中那样工作,但是找不到它,或者至少找不到我想要的东西,所以我做了我的事情。您可以查看是否喜欢: https://github.com/Triun/laravel-model-base

它将读取您的数据库,并为您创建laravel雄辩的模型。

它的意思是非常灵活,所以配置可能有点复杂,我想我没有赶上文档,但是您可以问我是否不知道如何使它做什么你想要的。

基本上有4个自定义级别:

  • 通过开箱即用的修饰符,可以通过配置文件进行配置。
  • 包括自动生成模型的接口和特征。
  • 创建自己的修改器。保存模型骨架之前在其中接收模型的类,因此您可以添加或删除属性,方法等。
  • 生成模型库,但自己编辑最终模型。

当然,欢迎提出建议和建议。