wamesk / laravel-nova-address-field
Laravel Nova 4 Address field
Installs: 165
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Language:Vue
Requires
- wamesk/laravel-nova-country: ^1.1|^2.0
README
- Save address in one JSON database column
- Personal or business address
- Google Maps Autocomplete
Requirements
laravel/nova: ^4.0
Installation
composer require wamesk/laravel-nova-address-field
Usage
Address::make(__('customer.field.address'), 'address')
Settings
Cast
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, ]; }
Attributes
$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();
Repeatable field
Package is also compatible with Nova repeatable field
Repeater::make('Address', 'address') ->repeatables([\Wame\Address\Fields\AddressRepeater::make()]) ->asJson()
Google address autocomplete
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
.
Helper
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();