在 Laravel 中从数据库创建模型

Posted

技术标签:

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

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

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

【问题讨论】:

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

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

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

    composer require reliese/laravel 将服务提供商添加到您的config/app.php 文件Reliese\Coders\CodersServiceProvider::class 使用php artisan vendor:publish --tag=reliese-models 发布配置文件 确保您的数据库在 config/database.php.env 文件中正确配置。 最后发出命令: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 用于每次调用生成一个类,但您可以创建自己的命令来为数据库中的每个表调用此命令。

【讨论】:

" 但是您可以创建自己的命令来为数据库中的每个表调用此命令":github.com/krlove/eloquent-model-generator/issues/…【参考方案3】:

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

composer require laracademy/generators

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

【讨论】:

请打包详细信息、优点/缺点、文档、github 存储库??不建议使用没有支持文档的东西。 https://github.com/laracademy/generators@jgarcias

以上是关于在 Laravel 中从数据库创建模型的主要内容,如果未能解决你的问题,请参考以下文章

Laravel中从一个表到另一个表中的同一字段的多个外键

在 Xcode 6 中从核心数据数据模型创建 NSManagedObject 子类

Laravel 在控制台中从表中显示数组,即使具有空值

当我在 AWS 中从本地 Homestead 更改为 prod 时,Laravel 引发 SQLite 错误

在 Laravel 6 中从外键获取数据

在选择选项 html 中从数据库加载数据 - Laravel