Hello to everyone! In this article, we will examine how the __invoke
method is used in the Laravel controller.
First of all, let's see what the __invoke
method in php does:
The __invoke
method is called Magic Method. Used to make a class run as a function.
To use this in Laravel, it is necessary to use --invokable
as a parameter when creating the controller with the help of artisan
.
php artisan make:controller UploadController --invokable
After running the bash command above, a controller class will be created as follows:
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\Models\User; class UploadController extends Controller { /** * * @return \Illuminate\Http\Response */ public function __invoke() { // ... } }
After doing the work you want to do for the application in the __invoke
method in the controller, we need to define the controller in routes
. To define the API, it can be added as follows.
// routes/api.php Route::post('upload', UploadController::class);
As a result, you can use an invokable
controller when you only want to use a single method in a controller class and you don't need basic methods (index, store, update etc.) in the controller.
Happy coding! 🥳
Top comments (0)