New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

stylers/laravel-address

Laravel Address Manager
2,754 1
Install
composer require stylers/laravel-address
Latest Version:5.0
PHP:>=8.1
Laravel:10
Older releases:5 – 9
License:MIT
Last Updated:Jan 3, 2024
Links: GitHub  ·  Packagist
Maintainer: stylers

Laravel Address

Latest Stable Version Total Downloads License Build Status codecov Maintainability

Laravel version compatibility

Laravel version Package version
5.7 1.0
5.8 1.1
6.0 1.1
7.0 2.0
8.0 3.0
9.0 4.0
10.0 5.0

Installation

composer require stylers/laravel-address

You can publish the migration

php artisan vendor:publish --provider="Stylers\Address\Providers\AddressServiceProvider"

After the migration has been published, you can run the migrations

php artisan migrate

Usage

use Stylers\Address\Contracts\Models\Traits\HasAddressesInterface;
use Stylers\Address\Models\Traits\HasAddresses;

class User extends Authenticatable implements HasAddressesInterface
{
    use Notifiable;
    use HasAddresses;
}

Update or Create Address

If the $type is exists then will be update with $attributes.

use Stylers\Address\Enums\AddressTypeEnum;

$user = User::first();
$attributes = [
    "country" => "Hungary",
    "zip_code" => "1055",
    "city" => "Budapest",
    "name_of_public_place" => "Kossuth Lajos",
    "type_of_public_place" => "place",
    "number_of_house" => "1-3",
    "floor" => "42",
    "door" => "69",
    "latitude" => "47.5070738",
    "longitude" => "19.045599",
    "parcel_number" => "10086/0/A/3",
]; // array
$type = AddressTypeEnum::PRIMARY; // ?string
$address = $user->updateOrCreateAddress($attributes, $type); // AddressInterface

Delete Address

use Stylers\Address\Enums\AddressTypeEnum;

$user = User::first();
$type = AddressTypeEnum::PRIMARY; // ?string
$isDeleted = $user->deleteAddress($type); // boolean

Sync Address(es)

The syncAddresses() method delete all addressable address if $type is not exists in $arrayOfAttributes[$type][]. The syncAddresses() method create all $type of arrayOfAttributes[$type][] if type is not exists in addresses table.

use Stylers\Address\Enums\AddressTypeEnum;

$user = User::first();
$arrayOfAttributes = [
    AddressTypeEnum::MAILING => [
        "country" => "Hungary",
        "zip_code" => "1055",
        "city" => "Budapest",
        "name_of_public_place" => "Kossuth Lajos",
        "type_of_public_place" => "place",
        "number_of_house" => "1-3",
        "floor" => "42",
        "door" => "69",
        "latitude" => "47.5070738",
        "longitude" => "19.045599",
        "parcel_number" => "10086/0/A/3",
    ]
];
$addresses = $user->syncAddresses($arrayOfAttributes); // Collection

How to Test

$ docker run -it --rm -v $PWD:/app -w /app composer bash
$ composer install
$ ./vendor/bin/phpunit

Troubleshooting

# Fatal error: Allowed memory size of...
$ COMPOSER_MEMORY_LIMIT=-1 composer install

Related Packages

yajra/laravel-address

Philippines Address Lookup API for Laravel.

24,723 41
nonsapiens/realaddressfactory

Creates real-world street addresses from Google Maps, to use in database seeding...

12,851 53
bureaupartners/extract-address-from-text

With this package you can extract the address from a unformatted text string

10,126 3
maggomann/addressable

This Laravel package provides a minimal trait Addressable to add eloquent models...

6,406 0

Version History

Version Released PHP Laravel License
5.0 >=8.1 ~10 MIT
4.0 >=8.0 ~9 MIT
3.0 >=7.3 ~8 MIT
2.0.1 >=7.2.5 ~7 MIT
2.0 >=7.2.5 ~6 MIT