我也遇到同样的问题。不知道有没有解决方案,本打算在中间层里从容器里拿到已经实例化好的controller对象,但也找不到路子。
为什么要这么做啊!控制器的构造早于中间件,那中间件的过滤作用不就没用了吗
@Complicated 不啊,构造方法是在实例化的时候执行的,而request请求的是实例化后的其他方法,这不冲突啊,只是方便了在一个类中统一使用一个中间件,说到底是更方便了啊
@AbleYu 没提明白你说的意思(捂脸),,我就是想说,,有些时候吧,需要在构造函数里获取session,然后查询数据库,但是在中间件判断sesssion有没有值,没有值直接到登录界面!但是如果controller的构造函数早于中间件,那这样不就不行了
@Complicated 在构造函数调用中间件
@AbleYu 你的意思是在 构造函数里定义中中间件还是在构造函数里绑定中间件?
这么跟你说吧,一个http请求,都是通过route请求对应的controller方法的,请求之前是一定要实例化的。而中间件的绑定是绑定在路由上的,所以等价代换,你可以理解成中间件是绑定非构造在方法上的。你的场景应该是想在构造方法里做该控制器的通用验证,那么你可以定义route组,该控制器下的所有方法对用的route都放到这个route组里,给这个组绑定中间件。
关于 LearnKu
LearnKu 是终身编程者的修道场
摒弃世俗浮躁,追求技术精湛
由Summer 设计和编码❤
请登录
内容举报
匿名举报,为防止滥用,仅管理员可见举报者。