[完结] Laravel 6 From Scratch [Laracasts 免费视频中文语音]

喜欢就 点赞+收藏,因为可以给我动力,谢谢!
PS:顺便问一句,该不该等 Laravel 7 From Scratch 还是先搞完这个,纠结中……

不定期原文更新,不会频繁发博文刷屏,所以感兴趣的经常回来看看。有好的建议可以留言。

Laravel X From Scratch 是 Laracasts 的保留节目,这个系列从基础开始,一步一步的教你如何用对应版本的 Laravel 建立基础的 web 应用。刚开始都是基础的概念,然后一步步介绍一些更加高级的概念。一旦看完这个系列,基本上对整个 Laravel 提供的工具都会有一个了解了!新手必看。别忘了点赞+收藏

第一部分:前期准备

1. 初窥 —— (B站视频地址

在开始 Laravel 之前,我们先概略的了解一下一个请求发生时,到底在程序内部是如何运作的。

2. 安装 PHP, MySQL 和 Composer —— (B站视频地址

开始之前,我们必须确保安装了合适版本的 PHP、 MySQL,当然还有 Composer。

3. Laravel Installer 安装器 —— (B站视频地址

现在我们配置好了 Composer, 我们可以安装 Laravel Installer 并且配置成全局可用。这就可以让我们仅用一行命令就完成 Laravel 的安装:Laravel new app

4. Laravel Valet Setup —— (B站视频地址

如果你是 Mac 用户就不必运行 php artisan serve,你可以试试 Laravel Valet。

第二部分 路由

5.基础路由和视图 —— (B 站视频地址

当我学习一个新框架的时候,我做的第一件事就是看看框架的默认页面时如何工作的。本课就一起看看 routes/web.php

6.传递 Request 数据到视图 —— (B站视频地址

request() 帮助函数可以用来从任何 GET 或者 POST 请求中获取数据。本课,我们来学一学如何从查询语句中获取数据,然后传递给视图,并且也学会如何防止 XXS 攻击。

7.路由通配符 —— (B站视频地址

通常,我们会希望路由器能够接受一个通配符。比如,当我们访问一篇特定文章时,我们就可以把文章 URI 中独特的部分把通配符替换掉。

8.路由到控制器 —— (B站视频地址

如果我们可以用一个闭包来处理任何路由逻辑是很不错的,但是,对于一定规模的项目来说,我们几乎一定会用一个专门的控制器来替换闭包的做法。让我们看看如何实现吧!

第三部分 数据库操作

9.设置数据库连接 —— (B站视频地址

目前为止,我们使用了一个简单的数组作为我们的数据源。这不是现实中的情况,让我们来看看如何设置一个数据库连接吧。在本课,我们讨论了环境变量,配置文件以及查询语句生成器。

10.Eloquent介绍 —— (B站视频地址

前一课,我们使用了查询语句生成器从数据库获取了相关的文章。但是,我们还有一个方案可以选择:Eloquent。
Eloquent 不仅是一个提供了同样方法但是更加简洁的接口,用于查询数据库的类,同时它也是一个储存相关业务逻辑的绝佳之处。

11.迁移 —— (B站视频地址

前课,我们手动创建了一个数据库表,这并没有反映出我们现实中的日常工作流。实际上我们都是用迁移文件实现的。本节课我们就一起来看一下它们。

12.在一行命令中创建多个文件 —— (B站视频地址

如果我们需要创建多个文件,如果每次都打一行命令,显得十分繁琐,实际上我们可以通过简单的一行命令加上合适的选项就可以一次性创建所有你需要的文件,试试看吧!

13.业务逻辑 —— (B站视频地址

只要有可能,你就应该使你的代码书写和表现方式真实反映出你所期待的行为,并且和你真实生活中口中说的保持一致。比如,如果你是学校里的,需要有一个方式来帮助学生完成任务,那就把这些词汇运用到你的代码中去。也许你可以有一个 Assignment 模型,并且包含一个 complete() 方法。

第四部分 视图

14.布局页面 ——(B站视频地址

如果你再看一下 Laravel 提供的 welcome 视图,它包含了所有的 HTML 结构。这对于一个示例页面是没问题的,但是我们的实际开发中一定需要使用布局页面。

15.完善站点模板 —— (B站视频地址

运用前几节课学到的技术,我们来下载一个站点模板,然后把它加到 Laravel 项目中,这个模板叫做 SimpleWork

16.设置一个可以高亮的菜单链接 —— (B站视频地址

本课,我们会学习如何检测并高亮当前页面的导航按钮。我们可以使用 Request facade 来实现。

17.通过 Laravel Mix 和 webpack 进行资源编译 —— (B站视频地址

Laravel 提供了 Mix (一个关于 webpack 的操作工具)来帮助我们管理资源的匹配和编译。本课,我们演示一个基本的前端工作流程。

18.动态加载数据(1) —— (B站视频地址

接下来我们来看如何动态的加载数据。在 about 页面,我们有一个文章列表。我们一起创建一个文章模型,然后加入一些简单的数据,最后动态的把它们加载到页面上。

19.动态加载数据(2)—— (B站视频地址

我们继续完成这个练习,我们再创建要给显示完整文章的专门页面。

20.家庭作业解答 —— (B站视频地址

我们看一下上一课最后留的作业如何做。为了显示一个文章列表,我们需要创建一个对应的路由,一个对应的控制器方法,并且视图中要对它们进行迭代和渲染展示。

第五部分 表单

21.七个 Restful 控制器方法 —— (B站视频地址

我们应该对 7 个 Restful 控制器方法熟悉。本课,我们就一起来看看。

22. Restful 路由 —— (B站视频地址

熟悉了 Restful 控制器,接下来就要熟悉 RESTful 路由了。

23.表单处理 —— (B站视频地址

理解了 Restful 控制器方法和 HTTP 请求类型之后,是时候一起编写一个提交新文章的表单了。

24.提交 PUT 请求的表单 —— (B站视频地址

浏览器,在现在,还是只认识 GETPOST 请求。所以我们只能通过提交一个隐藏的字段来额外的指明我们所需要使用的方法,以便于 Laravel 去正确的对应到相应的路由。一起来看一下吧!

25.表单验证基础 —— (B站视频地址

在我们进一步去重构控制器之前,我们还要看看表单数据验证。目前,我们的控制器并不用户输入的到底是什么内容,我都直接把它们赋值然后视图储存到数据库中。这是绝对不行的。所以我们必须谨慎对待用户输入,一定要进行必要的验证。

第六部分 控制器技巧

26.利用路由模型绑定 —— (B站视频地址

目前为止,我们手动获取数据库的数据,并且使用了路由的通配符。然而,Laravel 可以自动实现这个数据查询,感谢路由模型绑定。

27.减少重复 —— (B站视频地址

我们的下一个技巧就是减少重复。如果我们回看 ArticlesController 我们在多个地方引用了 request keys 。实际上我们有一个更简单的方法。

28.考虑给路由一个名称 —— (B站视频地址

给路由命名让你可以将 URI 变成一个变量。这样,一旦路由改变了,所有的链接都会自动更新,因为你只是引用了路由的名称而不是硬编码它们。

第七部分 Eloquent

29.基础 Eloquent 关系 —— (B站视频地址

让我们回到 Eloquent 来谈谈关系。比如,如果我们有一个 $user 实例,我们如何获取他创建的所有项目呢?或者反过来,我们有一个 $project 实例,我们如何获取创建它的用户呢?
另外有专门的一系列视频讲 Eloquent Relationships.

30.理解外键和数据库工厂 —— (B站视频地址

让我们再谈谈测试。如果一个文章和一个用户关联,那么我们就需要给它添加必要的外键和关系方法。为此,我们也快速回顾了数据库工厂和如何在开发和测试阶段使用它们。

31.多对多关系 —— (B站视频地址

下面,我们会来讲讲更加复杂的“多对多关系”。为了讲解这个概念,我们会使用常见的文章和标签作为案例。很快我们就意识到,我们需要第三张数据表来关联一篇文章和多个标签,以及一个标签和多个文章。

32.把所有标签显示在每篇文章下 —— (B站视频地址

现在我们学会了如何构建多对多的关系,我们可以最终通过视图来进行使用了。并且最终,我们可以通过标签来筛选文章了。

33.多对多关系的添加和验证 —— (B站视频地址

我们现在理解了如何从一个被连接的数据表中获取和显示记录。下面我们就开始演示如何通过 attach()detach() 方法来一次插入一个或多个记录。但是,我们也要进行必要的验证,以避免恶意用户插入非法值。

第八部分 授权

34.快速建立访问限制体系 —— (B站视频地址

感谢 laravel-UI,我们可以快速建立对注册、session 处理、密码重置、邮件确认等等的完整访问限制体系。最棒的是,你根本无需关心实现细节,并且只需要几分钟就可以建立起来。

35.密码重置流程 —— (B站视频地址

本课,我们会讨论基础的密码重置流程。如果一个用户忘记了密码,一系列的事情会发生,他们会提交一个请求,我们会为他们准备一个和他们的账号关联的唯一的 token,然后我们给他们发送一个邮件,其中包含一个访问网站的链接,我们验证链接中的 token,如果它存在于数据库中,我们就允许用户重设密码。幸运的是,laravel 会自动为我们实现所有这一切!

第九部分 核心概念

36.Collection —— (B站视频地址

我们的第一个核心概念是 collection 的链式操作。你一定已经了解过了,比如从数据库获取多个数据的时候,一个 collection 的实例会被返回。它不仅仅是一个数据的打包,而且还提供了一系列十分便利的方法可以让我们轻松对它们进行操作。

37.CSRF 攻击和举例 —— (B站视频地址

Laravel 提供了跨站请求攻击(CSRF)的保护机制,不过我们仍然需要理解到底这是什么意思。本课,我会给大家看一些案例,一个 CSRF 攻击是如何执行的,并且 Laravel 是如何给我们提供保护的。

38.服务容器基础 —— (B站视频地址

Laravel 的服务容器是它整个框架的核心支柱之一。在我们查看框架实际的服务容器之前,我们先自己写一个简单的服务容器出来。这会让我们对服务的绑定和解析有更直观的理解。

39.自动解析依赖 —— (B站视频地址

现在我们理解了服务容器的基础,我们来看看 Laravel 的实现吧。当我们深入查看时,抛开基础,它甚至可以自动实现对象的构建。这意味着,我们可以直接“索取”你想要的对象,而 Laravel 会尽力的帮你通过 PHP 的反射 API 来读取依赖关系然后把你需要的提供给你。

40.Laravel Facades 解释 —— (B站视频地址

现在我们对服务容器有了一个基本的理解了,我们可以来谈谈 Laravel facades 了,它为框架所有底层组件提供了一个方便的静态接口。本课,我们会一起看看它基础的结构,如何找到底层的类,以及什么时候我们会选择不去使用 facedes。

41.服务提供者 —— (B站视频地址

我们花了两节课时间讨论了 Laravel 的服务容器和 facades。基于这些内容,我们讲服务提供者就容易多了。一个服务提供者是用来注册服务到容器的地方,并且一般用来配置你的程序。

第十部分 邮件

42.发送原生邮件 —— (B站视频地址

在 Laravel 中发送邮件最简单的方法是 Mail::raw() 方法。本课,我们会学习如何提交一个表单,然后从请求中读取邮件,最后发送一个邮件给用户。

43.用 Mailtrap 模拟一个收件箱 —— (B站视频地址

在开发模式下用 log 来查看邮件是很方便的,但是让我们来切换到 Mailtrap 。这让我们可以模拟真实情况下的邮箱收件箱,这在我们开始发送 HTML 邮件的时候特别有用。

44.使用 Mailable 类发送 HTML 邮件 —— (B站视频地址

目前为止,我们只发送了纯文本邮件。让我们开始发送 HTML 文本的邮件吧!我们使用的是 Laravel 的 mailable 类。

45.使用 Markdown 模板发送邮件 —— (B站视频地址

我们也可以通过 makedown 语法来写邮件。本课,我们可以学会如何通过框架来发送格式良好的邮件。如果我们需要调整 HTML 的格式和样式,我们也可以把 mailable 类的资源发布出来进行自定义修改。

46.Notifications 还是 Mailables —— (B站视频地址

目前为止,我们只讲了 Mailable 类的邮件发送,然而,我们还有一个方法可以考虑。就是 Notification 类,它可以被用来通知用户,在用户在网站上做了某些行为之后。不同之处在于用户最终如何被通知到。当然,我们还是可以通过邮件提醒,但是我们也可以通过文本消息,Slack 提醒,甚至邮寄一个实体卡片!

第十一部分 通知

47.数据库通知 —— (B站视频地址

一个通知可以通过任意数量的渠道发送,也许一个特别的通知可以通过用户邮箱,或者网站提示来发送。我们在本课一起来看看吧!

48.只要5分钟,发送 SMS 通知 —— (B站视频地址

这是一个轻松的练习。我们会选择我本人从未尝试过的一种通知方法,SMS 消息。你们会看到,即使我从无经验,要实现 SMS 消息的发送也是十分的容易,当然你们也可以做到。

第十二部份 事件

49.事件的优点和缺点 —— (B站视频地址

事件为你的应用中的某些部分提供了一个发送公告的能力,它能够遍及整个系统。本课,我们不仅会看看事件的重要功能,也会讨论它的优缺点,帮助你自己决定是否采用事件功能。

第十三部份 授权

50.仅限授权用户访问 —— (B站视频地址

对于一个典型的网络应用,某些行为必须限定给授权用户。比如只有讨论的发布者可以选择哪个回答是最佳答案。如果是这个情形,我们就必须编写必要的授权逻辑。我们将在本课讨论。

51.授权过滤 —— (B站视频地址

几乎不可避免的,你的应用中的某些用户会获得某些特权和访问权。比如,一个论坛版主或者网站站长。这种情况下,我们可以分别使用 beforeafter 的授权过滤,在意向策略被测试之前。

52.猜测能力的名称 —— (B站视频地址

这是一个可选的特性,你可能会用到。如果你从控制器授权时排除了能力的名称, Laravel 会尽力猜测去调用合适的策略。它是通过创建一个特定的 restful 控制器方法和相关策略方法的映射来实现的。

53.以中间件实现的授权 —— (B站视频地址

如果你不想在控制器方法中去实现授权策略,你也可以采用路由特定中间件来实现。本课我们就来一起学习。

54.角色和能力 —— (B站视频地址

我们再加深一些印象。从一个全新的 laravel 应用开始,我们建立一个基于角色的授权系统,这样我们可以动态的给每一个用户授予或者收会特权。
源代码地址:GitHub

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 3年前 自动加精
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9
TigerLin

homebrew 很好用吗?

3年前 评论
TigerLin

你为什么可下载安装的这么快 推荐个科学上网方法 :joy:

3年前 评论
Affren (楼主) 3年前
mingzaily 3年前

还有十天结束教学部分,实战案例部分另开一贴,VUE系列提上日程,也给大家做点贡献!欢迎鼓励!

3年前 评论

@Epona @Jouzeyu @Remember 完结的帖子可以取消沉底吗?

3年前 评论

支持楼主,已经加群了.

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!