【问题标题】:Create Models from database in Laravel在 Laravel 中从数据库创建模型
【发布时间】:2015-08-14 03:28:01
【问题描述】:

有没有办法在 Laravel 中从数据库中生成模型

生成器包只创建一个空模型。

【问题讨论】:

  • 您还期望在模型文件中生成什么?
  • @Bogdan 因为不是所有系统都先使用代码,有时需要先使用数据库。像 Laravel 这样最大的框架居然不首先正式支持数据库,这太疯狂了。
  • @Bcktr 虽然 Laravel(或 Django)最适合开发新应用程序,但很有可能将其集成到遗留数据库中

标签: laravel eloquent model


【解决方案1】:

警告,您最终可能会覆盖您的 JetStream 或任何其他脚手架模型。在覆盖之前备份它们。

如果你使用 MySQL 和 Laravel 5.1 或更高版本,你可以使用这个包中的php artisan code:modelsreliese/laravel。您需要做的就是:

  1. composer require reliese/laravel
  2. 将服务提供商添加到您的config/app.php 文件Reliese\Coders\CodersServiceProvider::class
  3. 使用php artisan vendor:publish --tag=reliese-models 发布配置文件
  4. 确保您的数据库在 config/database.php.env 文件中正确配置。
  5. 最后发出命令:php artisan code:models

此软件包将扫描您的数据库并为您创建所有模型。如果您需要更具体的内容,您可以自定义其配置文件。

希望这会有所帮助:)

【讨论】:

  • 最后一个命令不再适用于 Laravel 5.6(.25):There are no commands defined in the "code" namespace.
  • 自己在文档页面上找到它:github.com/reliese/laravel/blob/master/README.md
  • 虽然这个答案帮助我从我的表中生成模型类,但问题是这些类不包括表列的公共属性。因此,我在 IDE (VSCode) 中没有获得任何自动完成优势。
  • Laravel (Eloquent) 模型没有表列的公共属性。这些生成的类是 Eloquent 模型。本着帮助自动完成的精神,我为每个生成的类添加了注释,一些 IDE(如 PhpStorm)确实用于自动完成。
  • 很可能你不想想每次都重做所有你的模型......大多数人可能正在寻找的是做一个单个表(比如说,您刚刚添加了表 users 并需要一个模型):php artisan code:models --table=users
【解决方案2】:

有一个库Eloquent Model Generator,其目的是使用数据库表作为源创建 Eloquent 模型类。它不仅生成类存根,还生成关系方法、魔术字段的文档块、附加属性等。

它提供了一个控制台命令php artisan krlove:generate:model ClassName 用于每次调用生成一个类,但您可以创建自己的命令来为数据库中的每个表调用此命令。

【讨论】:

【解决方案3】:

以下包可用于从数据库创建反向模型

composer require laracademy/generators

请在此处找到文档 -> https://github.com/laracademy/generators

【讨论】:

  • 请打包详细信息、优点/缺点、文档、github 存储库??不建议使用没有支持文档的东西。
  • https://github.com/laracademy/generators@jgarcias
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
  • 2018-11-09
  • 1970-01-01
相关资源
最近更新 更多