- Save address in one JSON database column
- Personal or business address
- Google Maps Autocomplete
laravel/nova: ^4.0
composer require wamesk/laravel-nova-address-field
Address::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();