
Introducción a los Controladores en Laravel
Comenzaremos explicando qué es un controlador. Un controlador organiza la lógica de tu aplicación. Maneja las peticiones del usuario. Interactúa con el modelo de datos. Prepara la respuesta que se enviará a la vista.
Este artículo te guiará paso a paso. Aprenderás a crear un controlador en Laravel. Lo haremos de manera metódica y organizada.
Crear un Controlador con Artisan
Laravel proporciona una herramienta de línea de comandos. Se llama Artisan. Es la forma más común y recomendada de crear un controlador.
Must Read
Primero, abre tu terminal o consola. Navega hasta la raíz de tu proyecto Laravel. Allí ejecutarás el comando Artisan.
El comando para crear un controlador es php artisan make:controller. Seguido del nombre que quieres darle al controlador.
Ejemplo Básico
Supongamos que quieres crear un controlador llamado UserController. El comando sería: php artisan make:controller UserController.
Esto creará un archivo llamado UserController.php. Lo encontrarás en el directorio app/Http/Controllers.
Este archivo contendrá una clase vacía. Estará lista para que definas tus métodos y lógica.

Controladores de Recursos
Laravel ofrece una opción para crear controladores de recursos. Estos controladores vienen con métodos predefinidos. Estos métodos gestionan operaciones CRUD (Crear, Leer, Actualizar, Borrar).
Para crear un controlador de recursos, usa el flag --resource. El comando sería algo como: php artisan make:controller ProductController --resource.
Esto creará un ProductController. Tendrá métodos como index, create, store, show, edit, update y destroy.
Controladores con Métodos Invokable
A veces, un controlador solo necesita un único método. En estos casos, puedes crear un controlador invokable.
Usa el flag --invokable. El comando sería: php artisan make:controller SingleActionController --invokable.
Esto creará un controlador. Tendrá un único método llamado __invoke. Este método se ejecutará cuando se acceda al controlador.

Estructura de un Controlador
Un controlador en Laravel es una clase PHP. Esta clase extiende la clase base App\Http\Controllers\Controller.
Los métodos dentro del controlador se llaman acciones. Cada acción corresponde a una ruta específica.
Por ejemplo, la acción index en UserController. Podría mostrar una lista de todos los usuarios.
Definiendo Métodos en el Controlador
Dentro de tu controlador, define métodos públicos. Cada método representará una acción específica.
Cada método puede recibir parámetros. Estos parámetros se pueden pasar desde la ruta definida en routes/web.php o routes/api.php.

Por ejemplo, un método show podría recibir un ID de usuario. Para mostrar los detalles de ese usuario.
Ejemplo de Código
Aquí hay un ejemplo simple de un controlador:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
return view('users.index');
}
public function show($id)
{
return view('users.show', ['user_id' => $id]);
}
}
Este controlador tiene dos métodos. index muestra la vista users.index. show muestra la vista users.show y pasa el ID del usuario.
Asignando Rutas a los Controladores
Después de crear el controlador, debes definir rutas. Estas rutas enlazan las peticiones HTTP a los métodos del controlador.
Puedes definir rutas en los archivos routes/web.php (para rutas web) o routes/api.php (para rutas API).
Usa el método Route::get, Route::post, Route::put, Route::delete, etc. Para definir la ruta y el controlador.

Ejemplo de Ruta
Para enlazar la ruta /users al método index del UserController:
Route::get('/users', [UserController::class, 'index']);
Para enlazar la ruta /users/{id} al método show del UserController:
Route::get('/users/{id}', [UserController::class, 'show']);
Recuerda importar la clase del controlador. Usando la sentencia use App\Http\Controllers\UserController;.
Conclusión
Crear un controlador en Laravel es un proceso sencillo. Se usa la herramienta Artisan y siguiendo estos pasos.
Este artículo te ha proporcionado los fundamentos. Ahora puedes crear controladores para organizar la lógica de tu aplicación. Y responder a las peticiones de los usuarios.
Practica creando diferentes tipos de controladores. Experimenta con diferentes métodos y rutas. Así dominarás esta parte fundamental de Laravel.