Em Laravel, os controladores (controllers) são responsáveis por lidar com a lógica do aplicativo e processar as solicitações HTTP. Eles ajudam a manter o código limpo e organizado, permitindo separar a lógica de negócios do roteamento e das visualizações.

Criando um Controller:

Para criar um controlador no Laravel, você pode usar o seguinte comando Artisan:

php artisan make:controller NomeDoController

Por exemplo, para criar um controlador chamado UserController, você executaria o seguinte comando:

php artisan make:controller UserController

Após a execução do comando, o Laravel criará um arquivo UserController.php no diretório app/Http/Controllers.

Exemplo de um Controller:

Aqui está um exemplo de um controlador simples chamado UserController, com alguns métodos para mostrar uma lista de usuários e exibir informações de um usuário específico.

// app/Http/Controllers/UserController.php

namespace App\\\\Http\\\\Controllers;

use App\\\\Models\\\\User;
use Illuminate\\\\Http\\\\Request;

class UserController extends Controller
{
    // Método para exibir uma lista de usuários
    public function index()
    {
        $users = User::all();
        return view('users.index', ['users' => $users]);
    }

    // Método para exibir informações de um usuário específico
    public function show($id)
    {
        $user = User::find($id);

        if (!$user) {
            return redirect()->route('users.index')->with('error', 'Usuário não encontrado.');
        }

        return view('users.show', ['user' => $user]);
    }
}

Explicação do exemplo:

Rotas para o Controller:

Para associar as rotas ao controlador, você pode fazer isso manualmente ou usar o recurso de roteamento automático do Laravel. Aqui está um exemplo de como definir as rotas manualmente para o controlador UserController:

// routes/web.php

use App\\\\Http\\\\Controllers\\\\UserController;

Route::get('/users', [UserController::class, 'index'])->name('users.index');
Route::get('/users/{id}', [UserController::class, 'show'])->name('users.show');

No exemplo acima, associamos as URLs /users e /users/{id} aos métodos index() e show($id) do controlador UserController, respectivamente.

O uso de controladores no Laravel ajuda a organizar melhor a lógica do seu aplicativo e permite que você crie rotas e lógica relacionada em um local centralizado. Isso torna o desenvolvimento mais eficiente e facilita a manutenção do código ao longo do tempo.

Estude+