Das Einrichten einer Funktion zur automatischen Vervollständigung von Adressen in Laravel kann das Benutzererlebnis erheblich verbessern. In dieser Anleitung erfahren Sie, wie Sie mithilfe der Google Places-API eine Funktion zur automatischen Vervollständigung von Adressen integrieren.
Erstellen Sie ein Laravel-Projekt (falls Sie es noch nicht getan haben):
composer create-project --prefer-dist laravel/laravel address-autocomplete
Erstellen Sie einen Controller:
php artisan make:controller AddressController
Definieren Sie nun eine Route in Routen/web.php:
Route::get('/autocomplete', [AddressController::class, 'index']);
Öffnen Sie app/Http/Controllers/AddressController.php und fügen Sie die folgende Logik für die Rückgabe der Ansicht hinzu:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class AddressController extends Controller { public function index() { return view('autocomplete'); } }
Erstellen Sie die Ansichtsdatei für autocomplete.blade.php im Verzeichnis resources/views:
touch resources/views/autocomplete.blade.php
Fügen Sie in autocomplete.blade.php das HTML-Formular und das Google Places-API-Skript ein:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Address Autocomplete</title> <!-- Add Bootstrap CSS for styling (optional) --> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container mt-5"> <h2>Autocomplete Address</h2> <div class="form-group"> <label for="autocomplete">Address</label> <input type="text" id="autocomplete" class="form-control" placeholder="Enter your address"> </div> </div> <!-- Google Places API --> <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_GOOGLE_API_KEY&libraries=places"></script> <script> function initialize() { var input = document.getElementById('autocomplete'); var options = { types: ['geocode'], // Restrict results to addresses }; var autocomplete = new google.maps.places.Autocomplete(input, options); } google.maps.event.addDomListener(window, 'load', initialize); </script> </body> </html>
Führen Sie den folgenden Befehl aus, um die Anwendung bereitzustellen:
php artisan serve
Besuchen Sie http://127.0.0.1:8000/autocomplete in Ihrem Browser und Sie sollten ein Adresseingabefeld sehen. Beginnen Sie mit der Eingabe einer Adresse und die Google Places API liefert Adressvorschläge.
Wenn Sie die ausgewählte Adresse weiter bearbeiten möchten (z. B. in einer Datenbank speichern), können Sie das Formular so ändern, dass es eine Übermittlungsoption enthält.
Sie können beispielsweise ein zusätzliches Formularfeld hinzufügen:
<form method="POST" action="{{ route('storeAddress') }}"> @csrf <input type="hidden" id="latitude" name="latitude"> <input type="hidden" id="longitude" name="longitude"> <button type="submit" class="btn btn-primary">Submit</button> </form>
Ändern Sie Ihr JavaScript, um den Breiten- und Längengrad zu erfassen:
var autocomplete = new google.maps.places.Autocomplete(input, options); autocomplete.addListener('place_changed', function() { var place = autocomplete.getPlace(); document.getElementById('latitude').value = place.geometry.location.lat(); document.getElementById('longitude').value = place.geometry.location.lng(); });
Erstellen Sie in Ihrem AddressController eine Methode zum Speichern der übermittelten Adresse:
public function storeAddress(Request $request) { $latitude = $request->input('latitude'); $longitude = $request->input('longitude'); // Store the address in the database or perform other actions. return back()->with('success', 'Address stored successfully.'); }
Fügen Sie eine Route für diese Formularübermittlung in web.php hinzu:
Route::post('/store-address', [AddressController::class, 'storeAddress'])->name('storeAddress');
Indem Sie diese Schritte befolgen, haben Sie Google Places Autocomplete erfolgreich in Ihre Laravel-Anwendung integriert. Sie können das Benutzererlebnis jetzt verbessern, indem Sie Benutzern die automatische Vervollständigung von Adressen ermöglichen, und Sie haben die Möglichkeit, die ausgewählten Adresskoordinaten in Ihrer Datenbank zu speichern.
Das obige ist der detaillierte Inhalt vonLeitfaden zur Integration der automatischen Vervollständigung von Google Places in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!