flipbox / orm-manager
Laravel ORM 管理器
Requires
- php: >=5.6.4
- doctrine/dbal: ^2.5
- illuminate/config: ^5.2
- illuminate/console: ^5.2
- illuminate/database: ^5.2
- illuminate/support: ^5.2
This package is auto-updated.
Last update: 2024-09-19 18:56:33 UTC
README
本包是用于 Laravel 或 Lumen ORM (对象关系映射) 模型的管理器。您可以在项目中生成关联方法并控制模型开发。 关联方法 是模型类中的方法,用于引用另一个模型以获取相关模型中的数据。例如,您有一个 User 和 Phone 模型,它们之间存在一对一的关系。如果两个类中都有关联方法,则这两个模型将被视为连接。在 User.php 类中应包含以下内容:
class User extends Authenticatable { /** * Get the phone record associated with the user. */ public function phone() { return $this->hasOne(Phone::class); } }
在 Phone.php 类中
class Phone extends Model { /** * Get the user that owns the phone */ public function user() { return $this->belongsTo(User::class); } }
当您在处理非常大的项目时,您可能会觉得很难连接项目中所有模型。此包可以自动生成项目中模型的全部关联方法,甚至包括您现在不需要的关联方法。通过此包,我们希望加快并简化模型关联方法的开发。
安装
使用 Composer 需要
composer require flipbox/orm-manager
在文件 config/app.php
中添加 Laravel 的服务提供者
Flipbox\OrmManager\OrmManagerServiceProvider::class,
在文件 bootstrap/app.php
中添加 Lumen 的服务提供者
$app->register(Flipbox\OrmManager\OrmManagerServiceProvider::class);
特性
在控制台查看 php artisan
,如果您正确安装了此包,您将看到以 orm:
为前缀的特性列表
控制 ORM 模型
模型列表
在控制台输入 php artisan orm:list
,这将显示您的项目模型及其属性列表。例如:
模型详情
在控制台输入 php artisan orm:detail User
,这将显示所选模型的详细信息。例如:
生成关联方法
如何工作? 首先检查您项目的数据库连接,如果您已创建数据库且已连接,它将检查数据库模式中关联所需的选项,例如 主键
、外键
、枢纽表
等。如果您尚未创建数据库或未连接,它将提供关联所需的一些选项。在满足所需选项后,它将检查方法中是否存在方法,然后在没有方法的情况下在模型中创建方法。
在单个模型中生成关联方法
php artisan orm:connect User hasMany Phone
它将在 Model User 类中生成方法
- 第一个参数是要创建方法的模型
- 第二个是关系名称,例如
hsaOne
、hasMany
、belongsTo
、belongsToMany
等。 - 第三个是引用模型。
在两个模型中生成关联方法
php artisan orm:both-connect User oneToMany Phone
它将在 Model User 和 Phone 类中生成方法
- 第一个参数是第一个模型
- 第二个是双向关系名称,例如
oneToOne
、oneToMany
、manyToMany
、morphOneToOne
等。 - 第三个是第二个模型。
自动生成所有模型
重要提示 *) 仅当您已创建数据库且项目已连接时才有效。
php artisan orm:auto-connect
它将搜索两个模型或更多模型之间的可能连接,并为每个模型生成方法,有时需要您确认以决定关系类型。