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
[NEW] Building a Typical Laravel SaaS
8 lessons
55 min
Laravel Coding with AI Agents: Cursor, Claude Code, Codex
5 lessons
1 h 01 min
Claude Code for Laravel Projects: Crash Course
8 lessons
48 min