Laravel advance | Laravel Macroable Response

Safaetul Ahasan
Feb 15, 2023

--

  1. add boot method in app/Providers/AppServiceProvider.php

public function boot()
{
Response::macro('success', function ($message) {
return ['success'=>true,'message'=>$message];
});

Response::macro('fail', function ($message) {
return ['success'=>false,'message'=>$message];
});
}

2. Use:

// For Success
return response()->success('successfully send!');

// For Fail:
return response()->json(['success' => false,'message' => 'Failed']);

Output:

//success_output
{
success: true,
message: "Successfully send!"
}


//fail_output
{
"success": true,
"message": "Failed!"
}

For Multiple Macros:

  1. Create App\Mixins.php file.

If you need more macros then we can use mixing in app\Mixins

namespace App\Mixins;

use Illuminate\Support\Facades\Response;

class ReponseMixin
{
Response::macro('success', function ($message) {
return ['success' => true,'message' => $message];
});

Response::macro('fail', function ($message) {
return ['success' => false,'message' => $message];
});

Response::macro('data', function ($data) {
return ['success' => false,'data' => $data];
});
}

2. add boot method in app/Providers/AppServiceProvider.php

//app/Providers/AppServiceProvider.php
public function boot()
{
Response::mixin(new ReponseMixin);
}

I hope this article help you.

--

--

Safaetul Ahasan
Safaetul Ahasan

No responses yet