Laravel 使用中间件过滤参数

问题

使用 Laravel Validator 验证参数以后,对于某些参数需要手动转换为对应的类型(比如 int,float),那么能不能在验证之前先自动过滤一下参数类型呢?

解决

使用中间件可以实现在 Controller 处理逻辑之前先过滤一下参数。

创建一个中间件类

$ php artisan make:middleware FilterParams
Read more   2020/04/04 posted in  编程

Laravel 查询包括软删除的记录

查询结果包括已被软删除的记录:

Model::withTrashed()->get();

只查询软删除记录:

Model::onlyTrashed()->get();

这两个方法找了好久,特地记了下来。

2019/01/21 posted in  编程

Laravel 中的异常处理

这篇文章里,我们将研究 Laravel 框架中最重要也最少被讨论的功能 —— 异常处理。

Laravel 自带了一个异常处理类,它能够让你以简单、优雅的方式 report 和 render 异常。

文章的前半部分,我们将研究异常处理类(exception handler)提供的默认配置,然后研究异常处理类,并借此理解 Laravel 框架处理异常的过程。

文章的后半部分,我们将创建一个自定义的异常处理类,用于捕获自定义的异常。

Read more   2019/01/09 posted in  编程

安装 Laravel 5.5 而不是 5.6 版本

通过 laravel installer 安装的总是当前稳定版本,但有时需要使用过去的某个稳定版,这时该怎么办呢?

通过下面的语法可以安装 Laravel 指定版本:

composer create-project laravel/laravel <your-project-name-here> <dev-develop>

示例:

composer create-project --prefer-dist laravel/laravel blog "5.5.*"
2019/01/04 posted in  折腾

Laravel Ioc 服务容器原理解析

Laravel 中的服务容器,其实就是一个全局的单例对象。通过入口文件可以清楚地知道,访问一个 Laravel 应用后台其实就是做了这几件事:1. 实例化一个服务容器(app)2. 服务容器处理请求,返回响应,所以说,服务容器就是一个全局环境。服务容器主要有两个作用,一个是提供程序所需要的各种资源、配置信息和服务,另一个是实现了控制反转(Ioc)容器。这篇文章深入讨论后者的源码实现。

服务容器是通过 Illuminate/Container/Container.php 类实现的。

文件 Illuminate/Container/Container.php

protected $bindings = [];

protected $instances = [];
Read more   2018/11/29 posted in  编程

Laravel 5.7 No 'Access-Control-Allow-Origin' header is present on the request resource

前后端项目跨域访问时会遇到此问题,解决方法如下:

创建一个中间件

php artisan make:middleware EnableCrossRequestMiddleware

该中间件的文件路径为:app/Http/Middleware/EnableCrossRequestMiddleware.php

中间件 EnableCrossRequestMiddleware 内容如下:

Read more   2018/10/10 posted in  折腾