基于 Laravel + Vue 构建 API 驱动的 LBS 应用系列教程(十三) —— 通过 Vue 组件、Vue Router、Vuex 和 Laravel 实现表单提交

在这篇教程中,我们来为咖啡店添加一些数据。我们构建这个应用的目的是为了帮助咖啡爱好者找到下一杯咖啡,所以首先需要让认证用户可以提交咖啡店到应用,不论何时在单页面应用中处理表单,都需要让 Laravel API 和调用 JavaScript 路由并更新 Vuex 储存数据的 Vuex 模块协同工作。听起来需要做的事情很多,但如果我们将它们拆解开来各个击破,也没有那么复杂。 第一步:回顾我们...

[ Laravel 从入门到精通 ] 表单方法伪造与跨站请求伪造(CSRF)攻击防护

表单方法伪造 有时候,我们可能需要手动定义发送表单数据所使用的 HTTP 请求方式,而 HTML 表单仅支持 GET 和 POST 两种方式,如果要使用其他的方式,则需要自己来定义实现。 HTTP 请求方式概述 最常见的 HTTP 请求方式自然是 GET 和 POST,相信你已经很熟悉,除此之外,HTTP 协议还定义了很多其他的请求方式,可以在 HTTP/1.1: Method De...

[ Laravel 从入门到精通 ] 路由进阶使用:模型绑定、兜底路由、频率限制和路由缓存

路由模型绑定 我们在使用路由的时候一个很常见的使用场景就是根据资源 ID 查询资源信息: Route::get('task/{id}', function ($id) { $task = \App\Models\Task::findOrFail($id); }); Laravel 提供了一个「路由模型绑定」功能来简化上述代码编写,通过路由模型绑定,我们只需要定义一个特殊约定的参数...

[ Laravel 从入门到精通 ] Laravel 控制器:从 MVC 模式到资源控制器

控制器概述 到目前为止,我们定义的所有路由都是基于闭包函数实现的,前面已经提到过,随着应用体量的增长,不可能将所有路由都定义在单个文件中,且对于复杂的业务逻辑,闭包函数也不足以支撑,所以和其他 Web 应用框架一样,我们还可以通过控制器来定义路由。 说到这里,我们就不得不提一下 MVC 设计模式,这个模式最早在 Ruby On Rails 中引入,然后被基本上所有的 Web 框架所借鉴和...

[ Laravel 从入门到精通 ] Laravel 路由分组规则:中间件、子域名、路由前缀和命名空间

常言道「物以类聚,人以群分」,同样,在日常开发中,我们通常会将具有某些共同特征的路由进行分组,这些特征包括是否需要认证、是否具有共同的路由前缀或者子域名、以及是否具有相同的控制器命名空间等,显然,对路由按照共同特征进行分组后可以避免重复为某些路由定义相同的路由特征,让代码更加简洁,可读性和可维护性更好。 所谓路由分组,其实就是通过 Route::group 将几个路由聚合到一起,然后给...

[ Laravel 从入门到精通 ] Laravel 路由入门:路由定义、参数传递及路由命名

对任何一个 Web 应用框架而言,通过 HTTP 协议处理用户请求并返回响应都是核心必备功能,也就是说,对于我们学习和使用一个 Web 框架,第一件要做的事情就是定义应用路由,否则,将无法与终端用户进行交互。而我们的 Laravel 从入门到精通系列教程之旅也将从路由开始,在这篇真正意义上的开篇教程中,我们将学习如何定义路由,然后将其指向要执行的代码,并处理各种路由需求。 路由入门 在 ...

[Laravel 5.7 文档] 官方扩展包 —— 第三方登录解决方案:Laravel Socialite

简介 除了传统的基于表单的登录认证外,Laravel 还可以通过 Laravel Socialite 提供 OAuth 认证,目前支持的认证驱动包括 Facebook、Twitter、Google、LinkedIn、GitHub 和 Bitbucket。 注:其他平台的驱动可以在社区驱的 Socialite 提供者网站上找到。 安装 要使用 Socialite,首先需要通过 Comp...

[ Laravel 5.7 文档 ] 进阶系列 —— 扩展包开发

简介 扩展包是添加额外功能到 Laravel 的主要方式。扩展包可以提供任何功能,小到处理日期如 Carbon,大到整个 BDD 测试框架如 Behat。 当然,有很多不同类型的扩展包。有些扩展包是独立于 Laravel 的,意味着可以在任何框架中使用,而不仅是 Laravel。比如 Carbon 和 Behat 都是独立的扩展包。所有这些扩展包都可以通过在 composer.json ...

[ Laravel 5.7 文档 ] 基础组件 —— 表单验证

简介 Laravel 提供了多种方法来验证请求输入数据。默认情况下,Laravel 的控制器基类使用 ValidatesRequests trait,该 trait 提供了便捷方法通过各种功能强大的验证规则来验证输入的 HTTP 请求。 快速入门 要掌握 Laravel 强大的验证特性,让我们先看一个完整的验证表单并返回错误信息给用户的示例。 定义路由 首先,我们假定在 routes/w...

[ Laravel 5.7 文档 ] 基础组件 —— 路由

路由入门 最基本的 Laravel 路由只接收一个 URI 和一个闭包,并以此为基础提供一个非常简单优雅的路由定义方法: Route::get('hello', function () { return 'Hello, Welcome to LaravelAcademy.org'; }); 我们以在安装配置文档中新建的 blog 应用为例,在 routes/web.php 中定义...