flipbox/orm-manager

v1.0.0 2017-03-11 15:25 UTC

This package is auto-updated.

Last update: 2024-09-19 18:56:33 UTC


README

Total Downloads Latest Stable Version Latest Unstable Version License

本包是用于 Laravel 或 Lumen ORM (对象关系映射) 模型的管理器。您可以在项目中生成关联方法并控制模型开发。 关联方法 是模型类中的方法,用于引用另一个模型以获取相关模型中的数据。例如,您有一个 UserPhone 模型,它们之间存在一对一的关系。如果两个类中都有关联方法,则这两个模型将被视为连接。在 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,这将显示您的项目模型及其属性列表。例如:ScreenShot

模型详情

在控制台输入 php artisan orm:detail User,这将显示所选模型的详细信息。例如:ScreenShot

生成关联方法

如何工作? 首先检查您项目的数据库连接,如果您已创建数据库且已连接,它将检查数据库模式中关联所需的选项,例如 主键外键枢纽表 等。如果您尚未创建数据库或未连接,它将提供关联所需的一些选项。在满足所需选项后,它将检查方法中是否存在方法,然后在没有方法的情况下在模型中创建方法。

在单个模型中生成关联方法

php artisan orm:connect User hasMany Phone

它将在 Model User 类中生成方法

  • 第一个参数是要创建方法的模型
  • 第二个是关系名称,例如 hsaOnehasManybelongsTobelongsToMany 等。
  • 第三个是引用模型。

在两个模型中生成关联方法

php artisan orm:both-connect User oneToMany Phone

它将在 Model User 和 Phone 类中生成方法

  • 第一个参数是第一个模型
  • 第二个是双向关系名称,例如 oneToOneoneToManymanyToManymorphOneToOne 等。
  • 第三个是第二个模型。

自动生成所有模型

重要提示 *) 仅当您已创建数据库且项目已连接时才有效。

php artisan orm:auto-connect

它将搜索两个模型或更多模型之间的可能连接,并为每个模型生成方法,有时需要您确认以决定关系类型。