Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从laravel中间件调用控制器方法_Php_Laravel_Laravel 5_Jwt - Fatal编程技术网

Php 从laravel中间件调用控制器方法

Php 从laravel中间件调用控制器方法,php,laravel,laravel-5,jwt,Php,Laravel,Laravel 5,Jwt,在我的base controller.php中有一个方法,可以根据我的喜好格式化所有响应 public function sendError($error, $errorMessages = [], $code = 404) { $response = [ 'success' => false, 'message' => $error, ]; if (!empty($errorMessages)) { $res

在我的base controller.php中有一个方法,可以根据我的喜好格式化所有响应

public function sendError($error, $errorMessages = [], $code = 404)
{
    $response = [
        'success' => false,
        'message' => $error,
    ];

    if (!empty($errorMessages)) {
        $response['data'] = $errorMessages;
    }

    return response()->json($response, $code);
}
如果我从另一个控制器调用它,我只需调用

return $this->sendError('Validation Error', $validator->errors(), 400);

但我也在为我的JWT身份验证使用中间件。除了重新编写方法,还有什么方法可以从中间件内部调用此控制器方法吗?

通过创建控制器在中间件中尝试此方法

return (new yourChildController)->sendError('xyz errro',[],400)

通过创建控制器,在中间件中尝试此方法

return (new yourChildController)->sendError('xyz errro',[],400)

也许您可以使用
app(YourControllerNameHere::class)
构建控制器实例,并使用
call\u user\u func\u array
return(new yourChildController)->senderro('xyzerro',[],400)创建的实例controller@JigneshJoisar这已经奏效了,您是否有可能添加一个答案,以便我可以接受?可能的副本可能是您可以使用
app(YourControllerNameHere::class)
构建控制器实例,并使用
call\u user\u func\u array
return(new yourChildController)->senderro('xyzerrro',[],400)调用该方法
创建的实例controller@JigneshJoisar这已经奏效了,您是否有可能添加一个答案,以便我可以接受?可能的副本