divineomega/uxdm-eloquent

UXDM数据迁移器的Eloquent包

v3.2.0 2023-02-16 08:07 UTC

This package is auto-updated.

Last update: 2024-09-16 11:29:28 UTC


README

Build Status Coverage Status

UXDM Eloquent包为Eloquent ORM提供了UXDM源和目标,Eloquent ORM常用于Laravel项目。

安装

要安装UXDM Eloquent包,只需运行以下composer命令。

composer require divineomega/uxdm-eloquent

UXDM Eloquent源

UXDM Eloquent源允许您从Eloquent模型中获取数据。如果您需要从使用Eloquent ORM的系统迁移数据,例如Laravel项目,这可能会很有用。

创建

要创建一个新的Eloquent源,您必须提供要使用的Eloquent模型的类名。

以下示例创建了一个Eloquent源对象,使用名为User的Eloquent模型,位于App命名空间中。

$eloquentSource = new EloquentSource(\App\User::class);

您还可以通过传递一个查询回调作为第二个参数来限制返回的结果,如下所示。

$eloquentSource = new EloquentSource(\App\User::class, function($query) {
    $query->where('id', 1);
});

分配给迁移器

要使用Eloquent源作为UXDM迁移的一部分,您必须将其分配给迁移器。这个过程对大多数源都是相同的。

$migrator = new Migrator;
$migrator->setSource($eloquentSource);

UXDM Eloquent目标

UXDM Eloquent目标允许您将数据迁移到Eloquent模型中。如果您需要将数据迁移到使用Eloquent ORM的系统,例如Laravel项目,这可能会很有用。

创建

要创建一个新的Eloquent目标,您必须提供要使用的Eloquent模型的类名。

以下示例创建了一个Eloquent目标对象,使用名为User的Eloquent模型,位于App命名空间中。

$eloquentDestination = new EloquentDestination(\App\User::class);

分配给迁移器

要使用Eloquent目标作为UXDM迁移的一部分,您必须将其分配给迁移器。这个过程对大多数目标都是相同的。

$migrator = new Migrator;
$migrator->setDestination($eloquentDestination);

或者,您可以根据下面的示例添加多个目标。您还可以通过传递一个字段名称数组作为第二个参数来指定要发送到每个目标的字段。

$migrator = new Migrator;
$migrator->addDestination($eloquentDestination, ['field1', 'field2']);
$migrator->addDestination($otherDestination, ['field3', 'field2']);