- Save address in one JSON database column
- Personal or business address
- Google Maps Autocomplete
- laravel/nova: ^4.0
composer require wamesk/laravel-nova-address-fieldAddress::make(__('customer.field.address'), 'address')| Parameter | Description | 
|---|---|
| countryList(['sk' => 'Slovakia']) | Custom country list | 
| onlyCompany() | Show only company address | 
| withoutCompany() | Show only personal address | 
| withoutAddressSuggestions() | Without address suggestions if set Google Maps API key | 
| defaultShowCompany() | Show default company tab | 
| withoutName() | Without personal user name | 
Setting casts in model
use Wame\Address\Casts\AddressCast;
protected function casts(): array
{
    return [
        'address' => AddressCast::class,
    ];
}In one model, there can be more address columns
protected function casts(): array
{
    return [
        'billing_address' => AddressCast::class,
        'shipping_address' => AddressCast::class,
    ];
}$this->address->firstName; // John
$this->address->lastName; // Doe
$this->address->getName(); // John Doe
$this->address->street; // Baker street 3
$this->address->zipCode; // 08501
$this->address->city; // New York
$this->address->country; // SK
$this->address->getCountryTitle(); // Slovakia
$this->address->getCountryData();
$this->billing_address->isCompany; // true|false
$this->billing_address->companyName; // Apple Inc.
$this->billing_address->getName(); // Apple Inc.
$this->billing_address->businessId;
$this->billing_address->taxId;
$this->billing_address->vatId;
$this->billing_address->vatPayer; // true|false
$this->address->isComplete(); // true|false
$this->address->toArray();
$this->address->toJson();Package is also compatible with Nova repeatable field
Repeater::make('Address', 'address')
    ->repeatables([\Wame\Address\Fields\AddressRepeater::make()])
    ->asJson()If you add the Google Maps API key from https://console.cloud.google.com/ to the .env, you can search for addresses
GOOGLE_MAPS_API_KEY="AIza..."It also stores the place coordinates latitude and longitude.
Helpers for preparing a fake address, returned AddressCast
\Wame\Address\Utils\AddressHelper::fakeAddress();
\Wame\Address\Utils\AddressHelper::fakeCompanyAddress();
\Wame\Address\Utils\AddressHelper::fakeAddress(['country' => 'SK']);
\Wame\Address\Utils\AddressHelper::fakeAddress(withName: false);
\Wame\Address\Utils\AddressHelper::fakeAddress()->toArray();
\Wame\Address\Utils\AddressHelper::fakeAddress()->toJson();