- Save address in one JSON database column
- Personal or business address
- Google Maps Autocomplete
laravel/nova: ^5.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 |
withPhone() |
Show phone input |
withGPS() |
Show latitude and longitude inputs |
Address::make(__('customer.field.address'), 'address')
->withoutCompany()
->withoutName()
->withGPS()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->addess->phone;
$this->addess->latitude;
$this->addess->longitude;
$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\FakeAddress::make();
\Wame\Address\Utils\FakeCompanyAddress::make();
\Wame\Address\Utils\FakeAddress::make(['country' => 'SK']);
\Wame\Address\Utils\FakeAddress::make(withName: false);
\Wame\Address\Utils\FakeAddress::make()->toArray();
\Wame\Address\Utils\FakeAddress::make()->toJson();