首页
学习
活动
专区
圈层
工具
发布

3分钟短文 | Laravel 中间件传递数据到控制器

一般我们也是这么做的,但是你想过没有,中间件如何传递数据到下游?本文就来说一说。 学习时间 比如有一个需求,根据用户身份,判断其是否可以访问某个页面。...那么能不能把中间件内的数据,直接传入到控制器呢。...我们知道整个生命周期流程其实就是对于请求数据的加工,那么从中间件到控制器,一成不变的是请求体, 那么我们可以考虑在请求体内追加数据,在控制器内直接拿来用,这样就利用上下文变量进行了传值。...,合并自定义数组到请求体: $request->merge(array("page" => $page)); 然后在请求体内,就可以任性地使用了,经过精简后,控制器可以改写为下面这样: public function...写在最后 本文通过在中间件内,把自定义数据合并到request请求体内,实现了中间件到控制器的传值。

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP-Laravel控制器使用(C)

    三、控制器使用© 控制器主要的作用主要负责接收用户输入请求,调度模型处理数据最后利用视图展示数据。 1、控制器文件写在哪里? 其位置位于app/Http/Controllers ?...【重点】 注意:其控制器基础结构代码,不需要自己去手动编写,可以通过artisan命令行来自动生成。...后续如果需要更多的控制器只需要重复的执行上述的artisan命令即可。 注意:控制器可以分目录管理。 4、控制器路由(项目以该方式为主) 即,如何使用路由规则调用控制器下的方法,而不再走回调函数。...Input::get(‘参数的名字’, ‘如果参数没有被传递使用该默认值’) //类似php里三元运算符 Input::all(): 获取所有的用户的输入 Input::get('参数的名字'):...在laravel中如果需要使用facades的话,但是又不想写那么长的引入操作: Use Illuminate\Support\Facades\Input 则可以在config/app.php中定义长串的别名

    1.9K10

    通过Ajax提交表单的数据

    表单同步提交后,页面之前的状态和数据会丢失。 解决方案: 表单只负责采集数据,Ajax负责将数据提交到服务器。...监听表单提交事情 在jQuery中,可以使用如下俩种方式,监听到表单的提交事件 方法一:            $('#f1').submit(function (e) {                ...1.serialize()函数 为了简化表单中数据的获取操作,jQuery提供了 serialize()函数,其语法格式如下: $(selector).serialize() 好处:可以一次性获取到表单中的所有数据...               console.log(data);                //结果:username=用户名的值&password=密码的值           }) 注意:在使用...serialize()函数快速获取表单数据时,必须为每个表单元素添加name属性!

    3.5K20

    服务通过缓存传递数据,绝不推荐

    《服务通过缓存传递数据,是否可行》一文引发一个服务之间“通过缓存传递数据”设计合理性的讨论。...如上图: service-A将数据放入cache service-B从cache里读取数据 这种架构设计好还是不好,网友进行了激烈的讨论,感兴趣的同学可以看下《服务通过缓存传递数据,是否可行》的评论,看到这么多互联网技术人对一个技术方案问题进行思考与探讨...先说结论 楼主旗帜鲜明的反对“服务之间通过缓存传递数据”。...service读写其后端的数据 假设有其他service要有数据获取的需求,应该通过service提供的RPC接口来访问,而不是直接读写后端的数据,无论是cache还是db。...综上 数据管道,MQ比cache更合适 多个服务不应该公用一个cache实例,应该垂直拆分解耦 服务化架构,不应该绕过service读取其后端的cache/db,而应该通过RPC接口访问 希望逻辑是清晰的

    1.6K40

    # 使用InheritedWidget传递数据

    # 使用InheritedWidget传递数据 除了StatefulWidget、StatelessWidget之外flutter还提供了另外一个用的Widget组件即InheritedWidget。...# 我们来看一下数据是如何从父widget传递到子widget的 下面我们定义一个嵌套三层的数据传递例子: class DataTransferAWidget extends StatelessWidget...(好想法,我们试一下) # 使用static代替构造函数传递数据 typedef ChildWidgetBuilder =DataTransferCWidget Function(int); class...上面例子我们定义了一个无状态的TestAWidget来演示如果获取InheritedWidget要向子传递的数据,下面我们通过一个有状态的控件来展示在获取数据的同时响应didChangeDependencie...# 总结 InheritedWidget用与向后代传递/共享数据 通过updateShouldNotify方法可以控制是否要调用后代的didChangeDependencies方法 didChangeDependencies

    1.2K20

    Laravel 通过迁移文件定义数据表结构

    在对数据库进行操作之前,需要先创建数据表,在诸如 Laravel 这种现代框架中,通过代码驱动让数据表结构的定义变得非常简单。...创建迁移文件 正如我们在 Artisan 命令中所提到的,Laravel 提供了一个 Artisan 命令 make:migration 帮助我们快速生成数据库迁移文件,该命名包含一个参数,就是要创建的迁移的名称...此外,这个 Artisan 命令还支持两个可选的选项,--create= 用于指定要创建的数据表名称,以及 --table= 用于指定要修改的数据表名称,前者在定义创建数据表迁移文件时使用,后者在定义更新数据表迁移文件时使用...'); 注:不推荐使用外键,更不要使用外键约束功能,因为影响数据库性能,而且级联删除有可能造成非常严重的无法挽回的后果。...回滚要稍微复杂点,Laravel 支持多种形式的回滚,如果只回滚最后一个迁移文件的变更,可以通过: php artisan migrate:rollback 来实现,如果要回滚多个迁移文件的变更,可以通过

    2.9K21

    服务之间通过缓存传递数据,我坚决反对!

    数据的移动,需要载体,DB和cache是常见的数据存储载体。 ?...和service-B物理上解耦; 那么问题来了: (1)你遇到过这种“服务之间通过缓存传递数据”的架构设计么?...先说结论,楼主旗帜鲜明的反对“服务之间通过缓存传递数据”。 为什么反对呢? 核心理由有3点。 第一点:数据管道场景,MQ比cache更加适合。...假设有其他service要有数据获取的需求,应该通过service提供的RPC接口来访问,而不是直接读写后端的数据,无论是cache还是db。...综上所述 (1)数据管道场景,MQ比cache更合适; (2)多个服务不应该公用一个cache实例,应该垂直拆分解耦; (3)服务化架构,不应该绕过service读取其后端的cache/db,而应该通过

    95150

    通过填充器快速填充 Laravel 测试数据

    我们在前两篇教程中分别介绍了如何连接到数据库,以及如何通过迁移文件定义表结构来创建或修改数据表,接下来,是时候在数据表里添加内容了。...在 Laravel 框架中,如果想要快速填充测试数据到数据库,可以借助框架提供的填充器功能,通过填充器,我们可以非常方便地为不同数据表快速填充测试数据。...填充器的运行 Laravel 提供了两种方式来运行填充器:一种是独立的填充命令,另一种是在运行迁移命令时通过指定标识选项在创建数据表时填充。...,Faker 类库提供了丰富的字段规则帮助我们生成伪造字段值,这些规则可以在官方文档中查看,这里,我们使用 调用模型工厂 在调用这些模型工厂的时候,需要借助 Laravel 提供的全局辅助函数 factory...比如我们还是通过运行 php artisan db:seed 命令来填充数据到数据库,此时,就可以看到新填充了 5 条记录: 注:本教程都以 Laravel 自带的 users 及对应 User 模型类为例进行演示

    11.1K20
    领券