The UXDM Eloquent package provides a UXDM source and destination for the Eloquent ORM, commonly used in Laravel projects.
To install the UXDM Eloquent package, just run the following composer command.
composer require divineomega/uxdm-eloquent
The UXDM Eloquent source allows you to source data from an Eloquent model. This can be handy if you need to migrate data from a system using the Eloquent ORM, such as a Laravel project.
To create a new Eloquent source, you must provide it with the class name of Eloquent model you wish to use.
The following example creates a Eloquent source object, using an Eloquent model called User
in the App
namespace.
$eloquentSource = new EloquentSource(\App\User::class);
You can also pass a query callback as a second parameter to restrict the results returned, as shown below.
$eloquentSource = new EloquentSource(\App\User::class, function($query) {
$query->where('id', 1);
});
To use the Eloquent source as part of a UXDM migration, you must assign it to the migrator. This process is the same for most sources.
$migrator = new Migrator;
$migrator->setSource($eloquentSource);
The UXDM Eloquent destination allows you to migrate data into an Eloquent model. This can be handy if you need to migrate data into a system using the Eloquent ORM, such as a Laravel project.
To create a new Eloquent destination, you must provide it with the class name of Eloquent model you wish to use.
The following example creates a Eloquent destination object, using an Eloquent model called User
in the App
namespace.
$eloquentDestination = new EloquentDestination(\App\User::class);
To use the Eloquent destination as part of a UXDM migration, you must assign it to the migrator. This process is the same for most destinations.
$migrator = new Migrator;
$migrator->setDestination($eloquentDestination);
Alternatively, you can add multiple destinations, as shown below. You can also specify the fields you wish to send to each destination by passing an array of field names as the second parameter.
$migrator = new Migrator;
$migrator->addDestination($eloquentDestination, ['field1', 'field2']);
$migrator->addDestination($otherDestination, ['field3', 'field2']);