This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.
This package is abandoned and no longer maintained. The author suggests using the artisanry/addressable package instead.

Addressable Polymorphic Eloquent Models for Laravel 5

6.2.0 2019-08-28 12:59 UTC


Build Status PHP from Packagist Latest Version License


Require this package, with Composer, in the root directory of your project.

$ composer require artisanry/addressable

You can publish the migration with:

$ php artisan vendor:publish --provider="Artisanry\Addressable\AddressableServiceProvider" --tag="migrations"

After the migration has been published you can create the tables by running the migrations:

$ php artisan migrate

You can publish the config file with:

$ php artisan vendor:publish --provider="Artisanry\Addressable\AddressableServiceProvider" --tag="config"


Setup a Model


namespace App;

use Artisanry\Addressable\Traits\HasAddresses;
use Illuminate\Database\Eloquent\Model;

class Order extends Model
    use HasAddresses;

Get an address by role


Set the role of an address

$user->address('billing', Address::find(1));

Create a new address (with a role)

$user->address('shipping', [
    'country_id' => 26,
    'name_prefix' => 'Mrs',
    'first_name' => 'John',
    'last_name' => 'Doe',
    'street' => 'JohnDoe Lane',
    'building_number' => 123,
    'city' => 'New York',
    'state' => 'New York',
    'postcode' => 12345,


$ phpunit


If you discover a security vulnerability within this package, please send an e-mail to hello@basecode.sh. All security vulnerabilities will be promptly addressed.


This project exists thanks to all the people who contribute.


Mozilla Public License Version 2.0 (MPL-2.0).