Laravel 使用服务容器解析所有的 Laravel 控制器,因此,可以在控制器的构造函数中注入任何依赖,这些依赖会被自动解析并注入到控制器实例中。
最常用的场景:接收HTTP请求参数,直接以参数的方式加入到方法中,在方法体中就可以直接调用;
控制器-依赖注入
运行结果:
路由闭包依赖注入
运行结果:
注:如果从路由或控制器返回的是 PSR-7 响应实例,则其将会自动转化为 Laravel 响应实例并显示出来。
请求字符串处理
默认情况下,Laravel 在 App\Http\Kernel 的全局中间件堆栈中引入了 TrimStrings 和 ConvertEmptyStringsToNull 中间件。这些中间件会自动对请求中的字符串字段进行处理,前者将字符串两端的空格清除,后者将空字符串转化为 null。这样,在路由和控制器中就不必对字符串字段做额外的处理。
获取请求输入
从查询字符串中获取数值
query 方法用于获取 GET 请求查询字符串参数值,input 方法用于获取所有 HTTP 请求参数值,post方法用于获取 POST 请求参数值
使用动态属性的时候,Laravel 首先会在请求中查找参数的值,如果不存在,还会到路由参数中查找。该功能的实现原理是魔术函数 __get 了:
成长的路上有你有我!
领取专属 10元无门槛券
私享最新 技术干货