If you want to create a controller with just one action, you can use __invoke() method and even create "invokable" controller.
Route:
Route::get('user/{id}', ShowProfile::class);
Artisan:
php artisan make:controller ShowProfile --invokable
Controller:
class ShowProfile extends Controller{ public function __invoke($id) { return view('user.profile', [ 'user' => User::findOrFail($id) ]); }}
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses on Laravel Daily
[NEW] Next.js Basics for Laravel Developers
11 lessons
58 min
Roles and Permissions in Laravel 13
14 lessons
57 min
Queues in Laravel 13
18 lessons
1 h 12 min read