Eloquent Storage
Here we show how to store data in database using Eloquent ORM.
Usage
Create an eloquent model:
<?php
class Payment extends Illuminate\Database\Eloquent\Model
{
protected $table = 'payments';
}
Register a storage for it
// bootstrap/start.php
use Payum\LaravelPackage\Storage\EloquentStorage;
App::resolving('payum.builder', function(\Payum\Core\PayumBuilder $payumBuilder) {
$payumBuilder
->addStorage(Payment::class, new EloquentStorage(Payment::class))
;
});
Models
The package provides two models Payum\LaravelPackage\Model\Token
and Payum\LaravelPackage\Model\Payment
which may be reused directly or extend with some custom logic. Here's the models schemas:
Payment:
The database schema could be generated like this
<?php
\Schema::create('payum_payments', function($table) {
/** @var \Illuminate\Database\Schema\Blueprint $table */
$table->bigIncrements('id');
$table->text('details');
$table->string('number');
$table->string('description');
$table->string('clientId');
$table->string('clientEmail');
$table->string('totalAmount');
$table->string('currencyCode');
$table->timestamps();
});
The storage could be registered like this
// bootstrap/start.php
use Payum\LaravelPackage\Storage\EloquentStorage;
use Payum\LaravelPackage\Model\Payment;
App::resolving('payum.builder', function(\Payum\Core\PayumBuilder $payumBuilder) {
$payumBuilder
->addStorage(Payment::class, new EloquentStorage(Payment::class))
;
});
Token:
The database schema could be generated like this
<?php
\Schema::create('payum_tokens', function($table) {
/** @var \Illuminate\Database\Schema\Blueprint $table */
$table->string('hash')->primary();
$table->text('details');
$table->string('targetUrl');
$table->string('afterUrl');
$table->string('gatewayName');
$table->timestamps();
});
The token storage could be registered like this
// bootstrap/start.php
use Payum\LaravelPackage\Storage\EloquentStorage;
use Payum\LaravelPackage\Model\Token;
App::resolving('payum.builder', function(\Payum\Core\PayumBuilder $payumBuilder) {
$payumBuilder
->setTokenStorage(new EloquentStorage(Token::class))
;
});
Supporting Payum
Payum is an MIT-licensed open source project with its ongoing development made possible entirely by the support of community and our customers. If you'd like to join them, please consider:
Last updated