Controllers are stored in the app/Http/Controllers/ directory.
π Example: Create a UserController
php artisan make:controller UserController
This generates UserController.php in app/Http/Controllers/.
Inside the controller, define a method to handle requests.
π Example: Adding an index method
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller {
public function index() {
return "Displaying all users";
}
}
Define a route in routes/web.php to connect to the controller method.
π Example: Route for index method
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
Visiting /users will call the index() method and return "Displaying all users".
Controllers can send data to Blade templates.
π Example: Returning a view from UserController
public function index() {
$users = ['Ali', 'Zain', 'Sara'];
return view('users.index', compact('users'));
}
π Example: users/index.blade.php
@foreach($users as $user)
<p>{{ $user }}</p>
@endforeach
This will display a list of users in the view.
Controllers separate business logic from routes, making Laravel applications organized and scalable.
π― Next Steps: Learn about Resource Controllers and Middleware! π