divineomega / uxdm-spatie-data-transfer-object

UXDM 数据迁移器的 Spatie 数据传输对象包

v1.0.0 2019-09-04 20:44 UTC

This package is auto-updated.

Last update: 2024-09-05 18:39:24 UTC


README

Build Status Coverage Status

UXDM Spatie 数据传输对象包为使用 Spatie 数据传输对象包 创建的数据传输对象提供 UXDM 源和目标。

如果您以前没有使用 UXDM 迁移数据,请访问 UXDM GitHub 仓库 了解更多信息。

安装

要安装 UXDM Spatie 数据传输对象包,只需运行以下 composer 命令。

composer require divineomega/uxdm-spatie-data-transfer-object

UXDM Spatie 数据传输对象源

UXDM Spatie 数据传输对象源允许您从 Spatie 数据传输对象集合中获取数据。

创建

要创建一个新的 Spatie 数据传输对象源,您必须向它提供一个已填充的 Spatie 数据传输对象集合。

以下示例使用用户数据传输对象集合创建了一个 Spatie 数据传输对象源对象。

$users = new UserDTOCollection([
    new UserDTO([
        'id' => 1,
        'name' => 'Picard`',
        'email' => 'picard@enterprise-d.com',
    ]),
    new UserDTO([
        'id' => 2,
        'name' => 'Janeway',
        'email' => 'janeway@voyager.com',
    ])
]);

$spatieDataTransferObjectSource = new SpatieDataTransferObjectSource($users);

分配给迁移器

要将 Spatie 数据传输对象源作为 UXDM 迁移的一部分使用,您必须将其分配给迁移器。这个过程与大多数源相同。

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

UXDM Spatie 数据传输对象目标

UXDM Spatie 数据传输对象目标允许您将数据迁移到 Spatie 数据传输对象集合。

创建

要创建一个新的 Spatie 数据传输对象目标,您必须向它提供一个 Spatie 数据传输对象集合和一个 Spatie 数据传输对象类的名称。

以下示例使用空集合和一个用户数据传输对象类的名称创建了一个 Spatie 数据传输对象目标对象。

$users = new UserDTOCollection();
$spatieDataTransferObjectDestination = new SpatieDataTransferObjectDestination($users, UserDTO::class);

分配给迁移器

要将 Spatie 数据传输对象目标作为 UXDM 迁移的一部分使用,您必须将其分配给迁移器。这个过程与大多数目标相同。

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

或者,您可以添加多个目标,如下所示。您还可以通过传递字段名称数组作为第二个参数来指定您希望发送到每个目标的字段。

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