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:
UserController
, definimos dois métodos: index()
e show($id)
. Esses métodos são chamados quando as rotas associadas são acessadas.index()
, recuperamos todos os usuários do banco de dados usando o modelo User
e, em seguida, passamos a lista de usuários para a view users.index
.show($id)
, recebemos o parâmetro $id
que representa o ID do usuário que desejamos visualizar. Usamos o método find($id)
do modelo User
para recuperar as informações do usuário correspondente ao ID fornecido. Se o usuário não for encontrado, redirecionamos de volta para a lista de usuários com uma mensagem de erro. Caso contrário, passamos os dados do usuário para a view users.show
.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.