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! π