Controladores e ações
Crie controladores com artisan e trate solicitações em métodos de ação.
Controladores e ações é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.
O que é um Controlador?
Um controlador agrupa a lógica relacionada ao tratamento de requisições. Em vez de usar fechamentos nos arquivos de rota, delegue o processamento aos métodos do controlador (ações).
Gerando um Controlador
Use o Artisan para criar a estrutura básica de um controlador.
$ php artisan make:controller UserController
$ php artisan make:controller PostController --resourceControlador Básico
Um controlador estende Controller e tem métodos públicos para cada ação de rota.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
public function index(): \Illuminate\View\View
{
$users = User::all();
return view("users.index", compact("users"));
}
}Acessando a Requisição
Declare Illuminate\Http\Request como indicação de tipo no método da ação — o Laravel o injeta automaticamente.
<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
$name = $request->input("name");
$email = $request->input("email");
User::create(["name" => $name, "email" => $email]);
return redirect()->route("users.index");
}Validação de Formulário
Use $request->validate() para validar os dados de entrada. Em caso de falha, o Laravel redireciona automaticamente de volta com os erros.
<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
$validated = $request->validate([
"name" => "required|string|max:255",
"email" => "required|email|unique:users",
]);
User::create($validated);
return redirect()->route("users.index");
}Métodos de Controlador de Recurso
Um controlador de recurso tem 7 métodos convencionais: index, create, store, show, edit, update, destroy.
Controladores de Ação Única
Controladores invocáveis têm um único método __invoke() — ideais para ações que fazem exatamente uma coisa.
<?php
class SendWelcomeEmail extends Controller
{
public function __invoke(User $user): void
{
Mail::to($user)->send(new WelcomeMail($user));
}
}
// Route:
Route::post("/users/{user}/welcome", SendWelcomeEmail::class);Middleware de Controlador
Aplique middleware a ações específicas usando o método middleware() no construtor.
<?php
public function __construct()
{
$this->middleware("auth")->except(["index", "show"]);
}Injeção de Dependências
Declare serviços como parâmetros de métodos de ação usando indicação de tipo — o Laravel os resolve a partir do contêiner de serviços.
<?php
public function store(Request $request, Mailer $mailer): JsonResponse
{
// $mailer is auto-injected
}Retornando Respostas
Os controladores podem retornar: visualizações, redirecionamentos, respostas JSON e downloads de arquivos.
<?php
return view("users.show", compact("user"));
return redirect()->back()->with("status", "Saved!");
return response()->json($user);
return response()->download(storage_path("report.pdf"));Namespace dos Controladores
Por padrão, todos os controladores ficam em App\Http\Controllers. Os subdiretórios criam subespaços de nomes: App\Http\Controllers\Admin\UserController.
Mantendo os Controladores Enxutos
Os controladores devem delegar a lógica de negócio a classes de serviço ou ações. Procure criar controladores que apenas: validem os dados de entrada, chamem um serviço e retornem uma resposta.
Resumo
Gere controladores com o Artisan. Declare Request e serviços com indicação de tipo para obter injeção automática. Use validate() para validar os dados de entrada. Mantenha os controladores enxutos — delegue o trabalho aos serviços.
Verificação Rápida
Qual comando do Artisan gera um controlador de recurso?
Perguntas Frequentes
A aula “Controladores e ações” é grátis?
Sim — o texto completo de “Controladores e ações” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.
O que vou aprender em “Controladores e ações”?
Crie controladores com artisan e trate solicitações em métodos de ação. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Controladores e ações”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Estrutura de projetos Laravel
- Definição de rotas no Laravel
- Controladores e ações
- Modelos e visualizações Blade