Invokable Controllers with One Specific Action
Às vezes, você precisa criar um controlador que não abrange todos os métodos resourcefull, como index(), create(), store(), etc.
Você só precisa de um controlador que faça uma única coisa e está com dificuldades para nomear esse método. Não se preocupe mais, existe o método __invoke().
Desde o Laravel 5.6, você pode criar um controlador com apenas um método __invoke():
namespace App\Http\Controllers;
use App\User;
use App\Http\Controllers\Controller;
class ProfileController extends Controller
{
public function __invoke($id)
{
return view('user.profile', ['user' => User::findOrFail($id)]);
}
}
Como você pode ver, também é possível passar um parâmetro para o id.
Para chamar esse método mais Controller, em suas rotas/routes/web.php, você deve ter o seguinte código:
Route::get('user/{id}', 'ProfileController');
Você também pode gerar esse tipo de Controlador usando o seguinte comando do Artisan:
php artisan make:controller ProfileController --invokable
Espero que este tutorial seja útil para você.
Subscribe to my newsletter
Read articles from Fernando Bezerra directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Fernando Bezerra
Fernando Bezerra
Sou Full Stack e escritor amador entusiasmado por desenvolvimento de software. Compartilho meu entusiasmo pela tecnologia e complexidades do desenvolvimento através da escrita.