Skip to content

aeq-dev/laravel-address

Repository files navigation

LaravelAddress

Latest Version on Packagist Total Downloads Build Status StyleCI

Laravel Address is a package to manage addresses that belong to your models. You can add addresses to any eloquent model with ease.

Installation

  1. Install the package via composer:

    composer require bkfdev/laravel-address
  2. Publish resources (migrations and config files):

    php artisan vendor:publish --provider="Bkfdev\Addressable\AddressesServiceProvider"
  3. Run migrations:

    php artisan migrate
  4. Done!

Usage

To add addresses support to your eloquent models simply use \Bkfdev\Addressable\Traits\Addressable trait.

Manage your addresses

// Get instance of your model
$user = new \App\Models\User::find(1);

// Create a new address
$user->addresses()->create([
    'label' => 'Default Address',
    'country_code' => 'dz',
    'street' => '56 john doe st.',
    'state' => 'Canterbury',
    'city' => 'Christchurch',
    'postal_code' => '7614',
    'latitude' => '31.2467601',
    'longitude' => '29.9020376',
    'is_primary' => true,
]);

// Create multiple new addresses
$user->addresses()->createMany([
    [...],
    [...],
    [...],
]);

// Find an existing address
$address = Bkfdev\Addressable\Models\Address::find(1);

// Update an existing address
$address->update([
    'label' => 'Default Work Address',
]);

// Delete address
$address->delete();

// Alternative way of address deletion
$user->addresses()->where('id', 123)->first()->delete();

Manage your addressable model

The API is intuitive and very straight forward, so let's give it a quick look:

// Get instance of your model
$user = new \App\Models\User::find(1);

// Get attached addresses collection
$user->addresses;

// Get attached addresses query builder
$user->addresses();

// Scope Primary Addresses
$primaryAddresses = Bkfdev\Addressable\Models\Address::isPrimary()->get();

// Scope Addresses in the given country
$algerianAddresses = Bkfdev\Addressable\Models\Address::inCountry('dz')->get();

Changelog

Refer to the Changelog for a full history of the project.

Support

Please raise a GitHub issue.

Testing

$ composer test

Contributing

Please see contributing.md for details and a todolist.

Security

If you discover any security related issues, please email bkfdev@gmail.com instead of using the issue tracker.

Credits

License

MIT. Please see the license file for more information.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages