在 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 中从数据库创建模型的主要内容,如果未能解决你的问题,请参考以下文章
在 Xcode 6 中从核心数据数据模型创建 NSManagedObject 子类