Skip to content

Easy link Laravel Models with external references for seamless integration and enhanced functionality.

License

Notifications You must be signed in to change notification settings

ayzerobug/laravel-external-references

Repository files navigation

Manage External References in Laravel

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

This package facilitates the seamless integration of your Laravel Models with external systems or services by managing external references or identifiers. It streamlines the process of associating your application's data with external datasets, such as payment processor IDs or user accounts. This enhancement enables the smooth integration of your application with diverse services and systems, thereby augmenting its capabilities and adaptability.

Installation

You can install the package via composer:

composer require ayzerobug/laravel-external-references

You can publish and run the migrations with:

php artisan vendor:publish --tag="external-references-migrations"
php artisan migrate

You can publish the config file with:

php artisan vendor:publish --tag="external-references-config"

This is the contents of the published config file:

return [

    /*
    |----------------------------------------------------------------------------------
    | Hidden Attributes
    |----------------------------------------------------------------------------------
    |
    | This configuration file defines the attributes that should be hidden by default 
    | in your ExternalReference Eloquent models. Hidden attributes are excluded from
    | the model's array and JSON representations.
    |
    */

    'hidden_attributes' => ['referenceable_type', 'referenceable_id', 'created_at', 'updated_at']
];

Usage

Include the HasExternalReferences trait in your model:

namespace App\Models;

use Ayzerobug\LaravelExternalReferences\Traits\HasExternalReferences;

class Payment extends Model
{
    use HasExternalReferences;

    ...
}

Set Payment External Reference:

use App\Models\Payment;

$payment = Payment::find($id);
$idOnPaystack = "random-id";
$payment->setExternalReference($idOnPaystack, 'paystack');

Get the external Reference

use App\Models\Payment;

$payment = Payment::find($id);
$idOnPaystack = $payment->getExternalReference('paystack');

Get Payment with the external Reference

use App\Models\Payment;

$idOnPaystack = "random-id";
$payment = Payment::findByExternalReference($idOnPaystack, 'paystack');

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Easy link Laravel Models with external references for seamless integration and enhanced functionality.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages