Jenner Acosta Diaz
Laravel 10

Controladores

En Laravel, los controladores son clases que contienen métodos que manejan las solicitudes HTTP y encapsulan la lógica de tu aplicación. Los controladores son responsables de procesar los datos recibidos desde las rutas y realizar acciones como consultar la base de datos, manipular datos, aplicar lógica empresarial y devolver una respuesta al usuario.

Puedes crear un controlador en Laravel utilizando el comando de Artisan llamado make:controller. Por ejemplo, para crear un controlador llamado MiControlador, puedes ejecutar el siguiente comando en la terminal:

php artisan make:controller MiControlador

Esto generará un archivo MiControlador.php en el directorio app/Http/Controllers con una estructura básica de controlador.

Dentro del controlador, puedes definir diferentes métodos para manejar diferentes acciones. Por ejemplo, puedes tener un método para mostrar una vista, otro para guardar datos en la base de datos, otro para procesar un formulario, etc.

Aquí hay un ejemplo de un controlador básico en Laravel:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class MiControlador extends Controller
{
    public function index()
    {
        // Lógica para mostrar una vista o realizar otras acciones
    }

    public function store()
    {
        // Lógica para guardar datos en la base de datos
    }

    // Otros métodos del controlador...
}

En este ejemplo, el controlador MiControlador tiene dos métodos: index y store. El método index puede ser utilizado para mostrar una vista o realizar otras acciones cuando se accede a una ruta asociada a este método. El método store puede ser utilizado para guardar datos en la base de datos cuando se realiza una solicitud HTTP POST a la ruta asociada a este método.

Una vez que hayas creado tu controlador, puedes asociarlo a una ruta en el archivo de rutas (routes/web.php o routes/api.php) utilizando el nombre del controlador y el método correspondiente, como se mencionó anteriormente.

Los controladores en Laravel te permiten organizar y reutilizar tu código de manera eficiente, separando la lógica de las rutas y manteniendo tu código más estructurado y mantenible.

Ejemplo:

php artisan make:controller HomeController

En nuestras Rutas, vamos a usar el nuevo controlador

Route::get('/', HomeController::class, '__invoke');

En el controlador lo siguiente:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function __invoke()
    {
        return 'Hello World';
    }
}

Ahora vamos a adminitrar varias rutas desde un controlador

php artisan make:controller CourseController
Route::get('/courses', [CourseController::class, 'index']);
Route::get('/courses/create', [CourseController::class, 'create']);
Route::get('/courses/{course}', [CourseController::class, 'show']);
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class CourseController extends Controller
{
    public function index()
    {
        return 'Page for courses';
    }

    public function create()
    {
        return 'Page for creating course';
    }

    public function show($id)
    {
        return 'Course '.$id;
    }
}