Laravel8中构造方法中不能写return的解决办法

今天想在控制器Controller构造函数中写一个公共变量,供方法使用,其中有设计到参数的拦截,然后要返回一个json,结果试了半天return json 根本就不执行,后来才想明白

今天想在控制器Controller构造函数中写一个公共变量,供方法使用,其中有设计到参数的拦截,然后要返回一个json,结果试了半天return json 根本就不执行,后来才想明白

构造函数是一个没有返回值的特殊函数,所有即使加上return也没意义,他不会执行的。

不仅php,所有面向对象的语言的构造函数都没有return

解决思路,使用中间件进行拦截处理就可以了

贴出控制器中使用中间件的代码示例

class UserController extends Controller
{
    /**
     * 实例化一个新的控制器实例
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('log')->only('index');
        $this->middleware('subscribed')->except('store');
    }
}
//闭包形式
$this->middleware(function ($request, $next) {
    return $next($request);
});

以上这篇laravel8中构造方法中不能写return的解决办法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持芦苇派。

原创文章,作者:ECHO陈文,如若转载,请注明出处:https://www.luweipai.cn/php/1663203582/

  • 0