Вызов метода контроллера из промежуточного программного обеспечения laravel

У меня есть метод в моем базовом файле 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-Auth. Вместо того, чтобы переписывать метод, есть ли способ вызвать этот метод контроллера из промежуточного программного обеспечения?


person Community    schedule 04.10.2018    source источник
comment
Возможно, вы можете создать экземпляр контроллера, используя app(YourControllerNameHere::class), и вызвать метод, используя call_user_func_array.   -  person krisanalfa    schedule 04.10.2018
comment
return (new yourChildController)->sendError('xyz errro',[],400) создать экземпляр контроллера   -  person Jignesh Joisar    schedule 04.10.2018
comment
@JigneshJoisar, который сработал, есть ли шанс, что вы можете добавить ответ, чтобы я мог его принять?   -  person    schedule 04.10.2018
comment
Возможный дубликат Как вызвать контроллер функция в другом контроллере в Laravel 5   -  person er.irfankhan11    schedule 04.10.2018


Ответы (1)


попробуйте это в промежуточном программном обеспечении, создав свой контроллер

return (new yourChildController)->sendError('xyz errro',[],400)
person Jignesh Joisar    schedule 04.10.2018