Laravel Framework ha lanzado la versión 12.17.0 con nuevas funcionalidades que mejoran la experiencia de desarrollo. Esta release incluye dos características destacadas que facilitan el trabajo con URIs y consultas de base de datos.
Características Principales
Nuevo Cast AsUri para Modelos Se ha añadido un nuevo cast AsUri que permite convertir automáticamente atributos de modelo a objetos URI, facilitando el manejo de URLs y URIs en tus aplicaciones Laravel de manera más elegante y tipada.
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Casts\AsUri;
use Illuminate\Database\Eloquent\Model;
class WebhookEndpoint extends Model
{
protected function casts(): array
{
return [
'endpoint_url' => AsUri::class,
'callback_url' => AsUri::class,
];
}
}
use Illuminate\Support\Uri;
$webhook = new WebhookEndpoint();
$webhook->endpoint_url = new Uri('https://api.stripe.com/v1/webhook_endpoints');
$webhook->callback_url = new Uri('https://miapp.com/webhooks/stripe');
$webhook->save();
// Al recuperar, automáticamente se convierte a instancia Uri
$stripeEndpoint = $webhook->endpoint_url; // Instancia de Illuminate\Support\Uri
$host = $stripeEndpoint->getHost();
$path = $stripeEndpoint->getPath();
Método reorderDesc() en Query Builder El Query Builder ahora incluye el método reorderDesc() que permite reordenar consultas en orden descendente, proporcionando un atajo más limpio para reordenar consultas existentes.
<?php
use App\Models\Product;
use App\Models\Order;
use Illuminate\Support\Facades\Auth;
// Productos ordenados por popularidad, pero reordenados por compras recientes del usuario
$products = Product::orderBy('popularity_score')
->when(Auth::user(), fn ($query, $user) =>
$query->reorderDesc(
Order::select('created_at')
->whereColumn('product_id', 'products.id')
->where('user_id', $user->id)
->orderByDesc('created_at')
->limit(1)
)
)->get();
// Reordenar posts de blog por fecha de publicación
$posts = Post::orderBy('title')->reorderDesc('published_at')->get();
// Reordenar productos por precio en ofertas especiales
$saleProducts = Product::orderBy('name')
->where('on_sale', true)
->reorderDesc('price')
->get();Lista Completa de Cambios
Esta release continúa mejorando la robustez y funcionalidad del framework, manteniendo Laravel como la opción preferida para desarrollo web en PHP.
Curso Laravel 12
Completo 2026
El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.
star Incluido en cualquier suscripción