29. Creando el Modelo y Controlador de la tabla

 Creando el Modelo y Controlador de la tabla Cursos

En este tutorial, vamos a crear el modelo y controlador para la tabla de Cursos en nuestro proyecto.

Creación del modelo y controlador

Abrimos nuestra terminal y ejecutamos los siguientes comandos:

bash
php artisan make:model Cursos

El modelo ha sido creado satisfactoriamente.

bash
php artisan make:controller CursosController

El controlador ha sido creado satisfactoriamente.

Configuración del modelo

En nuestro modelo Cursos.php, nos conectamos a la tabla correspondiente:

php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Cursos extends Model
{
    use HasFactory;
    
    protected $table = 'cursos';
    protected $primaryKey = 'id';
    public $timestamps = true;
}

Configuración del controlador

En nuestro controlador CursosController.php, importamos el modelo y creamos la función índice:

php
<?php

namespace App\Http\Controllers;

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

class CursosController extends Controller
{
    /**
     * Mostrar todos los registros
     */
    public function index()
    {
        $cursos = Cursos::all();
        
        if($cursos->isEmpty()) {
            return response()->json([
                'status' => 404,
                'total_registros' => 0,
                'message' => 'No hay ningún curso registrado'
            ], 404);
        }
        
        return response()->json([
            'status' => 200,
            'total_registros' => $cursos->count(),
            'detalles' => $cursos
        ], 200);
    }
}

Configuración de rutas

En el archivo routes/web.php, agregamos la ruta para acceder a nuestros cursos:

php
use App\Http\Controllers\CursosController;

Route::get('/cursos', [CursosController::class, 'index']);

Probando nuestro endpoint

Al acceder a la ruta /cursos con el método GET, obtendremos una respuesta JSON con todos los registros de la tabla cursos:

json
{
    "status": 200,
    "total_registros": 60,
    "detalles": [
        {
            "id": 1,
            "nombre": "Curso de Laravel",
            "descripcion": "Aprende Laravel desde cero",
            // ... otros campos
        },
        // ... más cursos
    ]
}

¡Hemos creado exitosamente el modelo y controlador para la tabla de Cursos!

Comentarios

Entradas más populares de este blog

crear controladores separados para API y Web

Laravel tanto para web como para API al mismo tiempo.

Creación de una API RESTful con Laravel (sin autenticación)