解释:

第 5 步:运行 Laravel 应用程序

运行以下命令来为应用程序提供服务:

php artisan serve

在浏览器中访问http://127.0.0.1:8000/autocomplete,您应该会看到一个地址输入字段。开始输入地址,Google Places API 将提供地址建议。

第 6 步:处理选定的地址(可选)

如果您想进一步处理所选地址(例如,将其存储在数据库中),您可以修改表单以包含提交选项。

例如,您可以添加额外的表单字段:

@csrf

修改您的 JavaScript 以捕获纬度和经度:

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();});

第 7 步:创建 Store 方法(可选)

在您的AddressController中,创建一个方法来存储提交的地址:

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.\\');}

在 web.php 中添加此表单提交的路由:

Route::post(\\'/store-address\\', [AddressController::class, \\'storeAddress\\'])->name(\\'storeAddress\\');

结论

通过执行这些步骤,您已成功将 Google Places Autocomplete 集成到您的 Laravel 应用程序中。您现在可以通过允许用户自动完成地址来增强用户体验,并且您可以选择将所选地址坐标存储在数据库中。

","image":"http://www.luping.net/uploads/20240929/172758925166f8eb8324d97.jpg","datePublished":"2024-11-03T12:21:10+08:00","dateModified":"2024-11-03T12:21:10+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 在 Laravel 中集成 Google 地点自动完成功能的指南

在 Laravel 中集成 Google 地点自动完成功能的指南

发布于2024-11-03
浏览:144

Guide to Integrating Google Places Autocomplete in Laravel

在 Laravel 中设置自动完成地址功能可以显着改善用户体验。本指南将向您展示如何使用 Google Places API 集成自动完成地址功能。

在 Laravel 中设置自动完成地址的分步指南

要求

  1. Laravel 项目。
  2. Google 地方信息 API 密钥。
  3. jQuery 和 JavaScript 基础知识。

第 1 步:设置 Google Places API 密钥

  1. 访问 Google Cloud Console。
  2. 创建一个新项目(或使用现有项目)。
  3. 导航到 API 和服务 > 库,然后搜索 Places API
  4. 启用地点 API
  5. 转到 API 和服务 > 凭据 并创建 API 密钥。确保限制此密钥以避免未经授权的使用。

第 2 步:安装 Laravel 并设置路由

创建一个 Laravel 项目(如果您还没有):

composer create-project --prefer-dist laravel/laravel address-autocomplete

创建控制器:

php artisan make:controller AddressController

现在,在routes/web.php中定义一个路由:

Route::get('/autocomplete', [AddressController::class, 'index']);

第 3 步:创建控制器逻辑

打开app/Http/Controllers/AddressController.php,添加以下返回视图的逻辑:





第 4 步:创建具有自动完成输入字段的视图

在resources/views目录下创建autocomplete.blade.php的视图文件:

touch resources/views/autocomplete.blade.php

在 autocomplete.blade.php 中,包含 HTML 表单和 Google Places API 脚本:



    
    
    Address Autocomplete

    
    



Autocomplete Address

解释:

  • 类型:['地理编码'] 将建议限制为地理编码地址。
  • 将 YOUR_GOOGLE_API_KEY 替换为您生成的实际 API 密钥。

第 5 步:运行 Laravel 应用程序

运行以下命令来为应用程序提供服务:

php artisan serve

在浏览器中访问http://127.0.0.1:8000/autocomplete,您应该会看到一个地址输入字段。开始输入地址,Google Places API 将提供地址建议。

第 6 步:处理选定的地址(可选)

如果您想进一步处理所选地址(例如,将其存储在数据库中),您可以修改表单以包含提交选项。

例如,您可以添加额外的表单字段:

@csrf

修改您的 JavaScript 以捕获纬度和经度:

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();
});

第 7 步:创建 Store 方法(可选)

在您的AddressController中,创建一个方法来存储提交的地址:

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.');
}

在 web.php 中添加此表单提交的路由:

Route::post('/store-address', [AddressController::class, 'storeAddress'])->name('storeAddress');

结论

通过执行这些步骤,您已成功将 Google Places Autocomplete 集成到您的 Laravel 应用程序中。您现在可以通过允许用户自动完成地址来增强用户体验,并且您可以选择将所选地址坐标存储在数据库中。

版本声明 本文转载于:https://dev.to/mdarifulhaque/guide-to-integrating-google-places-autocomplete-in-laravel-d4g?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 大批
    大批
    [2 数组是对象,因此它们在JS中也具有方法。 切片(开始):在新数组中提取部分数组,而无需突变原始数组。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    编程 发布于2025-05-19
  • Python中嵌套函数与闭包的区别是什么
    Python中嵌套函数与闭包的区别是什么
    嵌套函数与python 在python中的嵌套函数不被考虑闭合,因为它们不符合以下要求:不访问局部范围scliables to incling scliables在封装范围外执行范围的局部范围。 make_printer(msg): DEF打印机(): 打印(味精) ...
    编程 发布于2025-05-19
  • 在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在JTable中维护jtable单元格渲染后,在JTable中,在JTable中实现自定义单元格渲染和编辑功能可以增强用户体验。但是,至关重要的是要确保即使在编辑操作后也保留所需的格式。在设置用于格式化“价格”列的“价格”列,用户遇到的数字格式丢失的“价格”列的“价格”之后,问题在设置自定义单元格...
    编程 发布于2025-05-19
  • 如何处理PHP文件系统功能中的UTF-8文件名?
    如何处理PHP文件系统功能中的UTF-8文件名?
    在PHP的Filesystem functions中处理UTF-8 FileNames 在使用PHP的MKDIR函数中含有UTF-8字符的文件很多flusf-8字符时,您可能会在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    编程 发布于2025-05-19
  • Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    Async Void vs. Async Task在ASP.NET中:为什么Async Void方法有时会抛出异常?
    在ASP.NET async void void async void void void void void的设计无需返回asynchroncon而无需返回任务对象。他们在执行过程中增加未偿还操作的计数,并在完成后减少。在某些情况下,这种行为可能是有益的,例如未期望或明确预期操作结果的火灾和...
    编程 发布于2025-05-19
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-05-19
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示 仅通过Python的MlStripper 来简化剥离过程,Python Standard库提供了一个专门的功能,MLSTREPERE,MLSTREPERIPLE,MLSTREPERE,MLSTREPERIPE,MLSTREPERCE,MLST...
    编程 发布于2025-05-19
  • 左连接为何在右表WHERE子句过滤时像内连接?
    左连接为何在右表WHERE子句过滤时像内连接?
    左JOIN CONUNDRUM:WITCHING小时在数据库Wizard的领域中变成内在的加入很有趣,当将c.foobar条件放置在上面的Where子句中时,据说左联接似乎会转换为内部连接。仅当满足A.Foo和C.Foobar标准时,才会返回结果。为什么要变形?关键在于其中的子句。当左联接的右侧值...
    编程 发布于2025-05-19
  • 如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    Transform Pandas DataFrame Column to DateTime FormatScenario:Data within a Pandas DataFrame often exists in various formats, including strings.使用时间数据时...
    编程 发布于2025-05-19
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制在PHP中,多次定义一个相同名称的函数是一个no-no。尝试这样做,如提供的代码段所示,将导致可怕的“不能重新列出”错误。 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_re...
    编程 发布于2025-05-19
  • FastAPI自定义404页面创建指南
    FastAPI自定义404页面创建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    编程 发布于2025-05-19
  • 如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求模拟浏览器行为,以及伪造的用户代理提供了一个用户 - 代理标头一个有效方法是提供有效的用户式header,以提供有效的用户 - 设置,该标题可以通过browser和Acterner Systems the equestersystermery和操作系统。通过模仿像Chro...
    编程 发布于2025-05-19
  • 如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    使用http request 上传文件上传到http server,同时也提交其他参数,java.net.net.urlconnection and Multipart/form-data Encoding是普遍的。 Here's a breakdown of the process:Mu...
    编程 发布于2025-05-19
  • 如何在php中使用卷发发送原始帖子请求?
    如何在php中使用卷发发送原始帖子请求?
    如何使用php 创建请求来发送原始帖子请求,开始使用curl_init()开始初始化curl session。然后,配置以下选项: curlopt_url:请求 [要发送的原始数据指定内容类型,为原始的帖子请求指定身体的内容类型很重要。在这种情况下,它是文本/平原。要执行此操作,请使用包含以下标头...
    编程 发布于2025-05-19
  • `console.log`显示修改后对象值异常的原因
    `console.log`显示修改后对象值异常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    编程 发布于2025-05-19

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3