News

Generics Added to Eloquent Builder in Laravel 11.15

Published
Generics Added to Eloquent Builder in Laravel 11.15 image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team released v11.15 this week, which includes improvements to the make:mail command, support for setting mime types on attachments with Resend, database migration updates, and more.

Add Generics to Eloquent Builder and Relations

Caleb White contributed integrating relation generics into the Laravel framework:

Generics provide better auto-completion and intellisense in the ide without having to rely on Larastan to add generics to the classes through the use of stubs. Having generics in the framework also makes it easier for third party packages to define the inner types on their custom relations.

Caleb has been contributing to Larastan and is now integrating this into the framework, improving static analysis in Laravel! See Pull Request #51851 for more details.

Prompt for Creating a View with make:mail

Christoph Rumpel contributed an update to the make:mail command that prompts the user for the type of view they'd like to create:

Make Router Tappable

Muhammed Sari added the Tappable trait to the Router class, allowing you do write something like the following:

class RouteRegistrar
{
public function __invoke(Router $router)
{
$router->post('redacted', WebhookController::class)
->name('redacted');
}
}
 
$router
->tap(new Redacted1Webhooks\RouteRegistrar())
->tap(new Redacted2Webhooks\RouteRegistrar())
// ...
;
 
// In tests...
protected function defineRoutes($router)
{
$router->tap(new \RedactedWebhooks\RouteRegistrar());
}

Updates to Database Migrations

Hafez Divandari contributed updates to database migrations around SQLite and other quality-of-life improvements. In summary, Pull Request #51373 introduces the following updates:

  • Extend SQLite support to 3.26+
  • Add and Drop Foreign Keys on SQLite
  • Add and Drop the primary key on SQLite
  • Preserve the order of commands
  • Blueprint State for SQLite

Support for MIME Types in Resend Mail Transport

Jayan Ratna contributed support for setting mime types on attachments inside a Resend mailable class. This PR adds the withMime() method, which is demonstrated in the pull request as follows:

public function attachments(): array
{
return [
Attachment::fromPath('/path/to/file')
->as('name.pdf')
->withMime('application/pdf'),
];
}

Release notes

You can see the complete list of new features and updates below and the diff between 11.14.0 and 11.15.0 on GitHub. The following release notes are directly from the changelog:

v11.15.0

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Running Laravel's Scheduler on Multiple Servers image

Running Laravel's Scheduler on Multiple Servers

Read article
Laravel Fake Assertions Now Accept Property Arrays image

Laravel Fake Assertions Now Accept Property Arrays

Read article
Route::query() and Model defaults() in Laravel 13.35 image

Route::query() and Model defaults() in Laravel 13.35

Read article
Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat image

Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat

Read article
VMPal: Give Your AI Agent a Whole Computer image

VMPal: Give Your AI Agent a Whole Computer

Read article
Synapse: A Dev Dashboard for Laravel AI SDK Agents image

Synapse: A Dev Dashboard for Laravel AI SDK Agents

Read article