[ Laravel 从入门到精通 ] 命令行交互:在 Laravel 中编写第一个 Artisan 命令

不管是 Node.js、Python 还是 PHP 的 Web 框架,都提供了通过命令行与应用进行交互的功能,通过这些命令行工具,我们可以完成一些初始化操作,比如创建新应用、执行数据库迁移、或者快速创建类文件等,在 Laravel 中,我们可以通过三种工具实现命令行交互: Artisan:Laravel 内置的命令行操作工具集,支持自定义命令; Tinker:一个由 PsySH 扩展包...

[ Laravel 从入门到精通 ] 处理用户请求:通过匿名函数和验证规则类自定义字段验证规则

Laravel 验证器的强大之处不仅在于提供上述多种请求验证方式,以及非常丰富的字段验证规则(不同规则可以组合形成新的验证规则),还支持自定义字段验证规则。我们可以通过匿名函数和验证规则类两种方式来自定义验证规则。 通过匿名函数实现自定义规则 我们先演示下如何在控制器方法中调用 $this->validate() 时自定义验证规则,以 title 字段为例,除了系统提供的字段验证规则之外...

[ Laravel 从入门到精通 ] 处理用户请求:通过表单请求类实现请求字段验证和错误提示

在上一篇教程中,我们已经演示了如何在控制器方法中对表单请求字段进行验证,并且提到如果请求字段很多很复杂,都写到控制器方法里面会导致控制器臃肿,从单一职责原则来说需要将表单请求验证拆分出去,然后通过类型提示的方式注入到控制器方法。今天,我们就来实现这个拆分,Laravel 提供了表单请求类的功能帮助我们快速完成这一架构调整。 定义表单请求类 首先,我们需要需要创建一个表单请求类,这可以通过...

[ Laravel 从入门到精通 ] 处理用户请求:在 Laravel 控制器中进行表单请求字段验证

在 Web 应用中,用户提交的数据往往是不可预测的,因此一个非常常见的需求是对用户提交的表单请求进行验证,以确保用户输入的是我们所期望的数据格式。很多 Web 框架都对此功能专门提供了工具集,Laravel 也不例外,而且这个工具集异常丰富,基本上涵盖了目前主流的所有验证规则,即使是一些非常个性化的验证,也可以基于 Laravel 验证类的扩展功能来自定义验证规则,非常强大。接下来,我们...

[ Laravel 从入门到精通 ] 处理用户请求:基于 Laravel + Vue 组件实现文件异步上传

我们在上一篇教程中已经演示了如何通过 Request 请求实例获取各种文本输入数据,但是还有一种输入数据我们没有涉及到,那就是文件上传。我们可以通过 Request 请求实例提供的 file 方法获取用户上传文件,并将其保存到指定目录从而完成文件上传,接下来,我们将从前端到后端实现一个完整的用户上传文件功能,包括视图、路由、控制器部分代码。 定义文件上传路由 首先我们在 routes/w...

[ Laravel 从入门到精通 ] 处理用户请求:通过 Request 对象实例获取用户请求数据

到目前为止,我们在教程中所提供的大部分是静态页面。作为一门主要用于构建 Web 网站的动态语言,PHP 不仅可以处理静态页面,更重要的功能是处理用户动态请求,这才是一个 Web 2.0 网站最灵动的部分,从留言板到博客评论、到形形色色的社交网站、问答网站,无不是用户创造的内容让互联网更加绚烂多姿、五彩缤纷。而作为最流行的 PHP 框架,Laravel 自然也是为处理用户请求提供了丰富的工...

[ Laravel 从入门到精通 ] 前端入门:在 Laravel 项目中编写第一个 Vue 组件

和 CSS 框架一样,Laravel 不强制你使用什么 JavaScript 客户端框架,但是开箱对 Vue.js 提供了良好的支持,如果你更熟悉 React 的话,也可以将默认的脚手架代码替换成 React,实现细节参考官方文档。 学院拥抱的是 Vue.js 框架,所以后续前端相关教程都会基于 Vue.js 编写,有关 Vue.js 的入门教程,可以阅读官方文档,值得一提的是,Vue....

[ Laravel 从入门到精通 ] 前端入门:CSS 预编译语言 Sass 快速入门教程

CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量、函数、继承等机制,因此很容易写出大量没有逻辑、难以复用和扩展的代码,在日常开发使用中,如果没有完善的编码规范,编写的 CSS 代码会非常冗余且难以维护。 为了解决上述问题,出现了很多 CSS 预编译语言,CSS 预编译语言是基于 CSS 语言的语法扩展,除了能解决上述缺乏语言特性带...

Laravel 学院今天凌晨四点到上午十点不能访问问题定位及修复细节通报

今天早上起来(起来有点晚,九点多了),像往常一样打开学院网站,竟然报错了: 然后瞅一眼 QQ 群、微信,各路人马都来反馈问题,于是赶紧打开邮件,查看 Sentry 报警,竟然有这么多报警邮件: 这些报错邮件都无一例外都指向了同一个问题: MISCONF Redis is configured to save RDB snapshots, but is currently not a...

[ Laravel 从入门到精通 ] 前端入门:在 Laravel 项目中使用 Bootstrap 框架

Laravel 如何引入 Bootstrap 如官方文档所言,Laravel 并不强制你使用 CSS 框架,但是开箱提供了对 Bootstrap 的支持,在 resources/js/bootstrap.js(在 Laravel 5.7 之前的版本位于 resources/assets/js/bootstrap.js)中,我们可以看到对 bootstrap js库的引入: try { ...