aboleon/metaframework-google-places

Google Places address autocomplete component for Laravel

Maintainers

👁 aboleon

Package info

github.com/aboleon/metaframework-google-places

pkg:composer/aboleon/metaframework-google-places

Statistics

Installs: 32

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

1.7.0 2026-03-19 09:02 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 71f736ab45ff254fe39f528882c2614d88883fbf

This package is auto-updated.

Last update: 2026-06-19 09:28:58 UTC


README

👁 Tests
👁 codecov
👁 Latest Version on Packagist
👁 Total Downloads
👁 PHP Version
👁 License

Google Places address autocomplete component for Laravel

Requirements

  • PHP ^8.3
  • Laravel ^11.0 | ^12.0
  • MetaFramework Inputable

Installation

composer require aboleon/metaframework-google-places

Publish assets/config/translations:

php artisan vendor:publish --tag=mfw-google-places-config
php artisan vendor:publish --tag=mfw-google-places-translations
php artisan vendor:publish --tag=mfw-google-places-assets

Configuration

config/mfw-google-places.php:

return [
 'google' => [
 'places_api_key' => env('MFW_GOOGLE_PLACES_KEY', ''),
 ],
];

Usage

<x-mfw-google-places::form
 :model="$address"
 field="address"
 label="Address"
 :params="['required' => ['route', 'postal_code', 'locality']]"
 :hidden="['administrative_area_level_2']"
 :showCoords="true"
/>

Searchbar-only mode:

<x-mfw-google-places::form
 :model="$address"
 mode="searchbar"
/>

Custom search filters (Places API)

You can pass Places Autocomplete options through params. The component supports:

  • types (legacy; mapped to includedPrimaryTypes)
  • includedPrimaryTypes
  • includedSecondaryTypes
  • includedRegionCodes (or legacy componentRestrictions.country)

Example: keep address results and also allow hotels/lodging:

<x-mfw-google-places::form
 :model="$address"
 :params="[
 'types' => ['geocode'],
 'includedPrimaryTypes' => ['lodging'],
 ]"
/>

To fully customize, publish the component and use the native Blade tag:

<x-google-places />

Artisan Commands

php artisan mfw-google-places:make-geo-model
php artisan mfw-google-places:make-geo-for-model {model?}
php artisan mfw-google-places:publish-component [--force]
php artisan mfw-google-places:publish-request [--force]
  • mfw-google-places:make-geo-model generates a new Geo model and migration with all Google Places fields.
  • mfw-google-places:make-geo-for-model adds a Google Places Geo relation and migration to an existing model (optionally provide the model class).
  • mfw-google-places:publish-component publishes app/View/Components/GooglePlaces.php and resources/views/components/google-places.blade.php for customization (use --force to overwrite).
  • mfw-google-places:publish-request publishes a GooglePlacesRequest to app/Http/Requests for customization (use --force to overwrite).

Validation example:

use MetaFramework\GooglePlaces\Validation\GoogleAddressValidation;

$rules = (new GoogleAddressValidation())
 ->setPrefix('address')
 ->setRequiredFields(['route', 'postal_code', 'locality'])
 ->rules();

Customize the published request:

php artisan mfw-google-places:publish-request
// app/Http/Requests/GooglePlacesRequest.php
public function rules(): array
{
 return (new GoogleAddressValidation())
 ->setPrefix('address')
 ->setRequiredFields(['route', 'postal_code', 'locality'])
 ->rules();
}