Laravel 中 中间件 和 控制器 都用到一个方法 怎么办?

1)是在中间件中调用控制器方法么?
2)还是 把动用到的方法 写到 中间件中, 然后控制器掉用中间件方法?
3)还是 中间件中 写一个方法, 控制器中写一个方法

很郁闷,您如果知道用该怎么办,请您告诉我,感激不尽!

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4

我是在中间件中,写的接口验证

5年前 评论

@The_handsome_man_was_cut_down 大家帮帮他吧

5年前 评论
leo

看你这个代码是干嘛的,如果与请求的参数有关,可以用 Trait,如果是业务相关可以用 Service 模式

5年前 评论
Ryan

没有示例代码不清楚你说的都用一个方法是具体什么情况,如果是一个帮助方法的话那就直接写到类似于 helpers.php中作为一个单独方法,或者某个service中来依赖注入或者实例化来调用等。
如果在中间件和控制器中调用的这个方法和request无关的话,也可以写一个类似于BaseController,将middleware写在__construct(),类似这样

class BaseController extends Controller
{
    public function __construct()
    {
        $this->middleware(function ($request, $next) {

            ....
            $this->xxx()
            return $next($request);
        });
    }

    public function xxx(){}
}

// 其他Controller需要调用这个xxx()直接继承BaseController

如果这个方法就是为了对request做一些操作比如验证过滤等,那么这个逻辑就写到中间件里面,控制器应该不需要调用这个方法了,只要使用这个中间件就行了,不存在都要调用到这个方法的情况了

可能我说的情况也不对,所以你还是贴点代码上来吧。。。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!