การเรียกวิธีการควบคุมจากมิดเดิลแวร์ 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


คำตอบ (1)


ลองใช้อันนี้ในมิดเดิลแวร์โดยสร้างคอนโทรลเลอร์ของคุณ

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