Rutas

De Wiki Proyectos Beta
Ir a la navegación Ir a la búsqueda

Rutas en Laravel

Las rutas en Laravel definen cómo se manejan las solicitudes HTTP en tu aplicación. Puedes configurar rutas en los archivos ubicados en el directorio routes/.

Definir Rutas Básicas

Para definir rutas básicas, edita el archivo routes/web.php:

use Illuminate\Support\Facades\Route;

// Ruta para la página de inicio
Route::get('/', function () {
    return view('welcome');
});

// Ruta con un parámetro
Route::get('/user/{id}', function ($id) {
    return "User ID is " . $id;
});

Para definir una ruta básica que devuelve una respuesta JSON, edita el archivo routes/api.php:

use Illuminate\Support\Facades\Route;

Route::get('/user/{id}', function ($id) {
    return response()->json(['user_id' => $id]);
});

Rutas con Controladores

Para manejar rutas con controladores, primero crea un controlador con Artisan:

php artisan make:controller UserController

Luego, define la ruta en routes/web.php:

use App\Http\Controllers\UserController;

// Ruta que utiliza un controlador
Route::get('/user/{id}', [UserController::class, 'show']);

En el archivo del controlador UserController.php:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    public function show($id)
    {
        return "User ID is " . $id;
    }
}

Si defines una ruta que usa un controlador en routes/api.php:

use App\Http\Controllers\Api\UserController;

Route::get('/user/{id}', [UserController::class, 'show']);

En el controlador UserController, define el método show:

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function show($id)
    {
        return response()->json(['user_id' => $id]);
    }
}

Rutas de Recursos

Para generar rutas para un CRUD (Crear, Leer, Actualizar, Eliminar), utiliza Route::resource en routes/web.php:

Route::resource('posts', PostController::class);

Esto crea automáticamente rutas para todas las acciones del controlador.