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
Roles and Permissions in Laravel 13
14 lessons
57 min
Testing in Laravel 13 For Beginners
26 lessons
1 h 41 min read
How to Structure Laravel 13 Projects
16 lessons
1 h 32 min read