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 →
Fresh Package: Laravel Package Skeleton with Testbench, CI, and Boost Integration image

Fresh Package: Laravel Package Skeleton with Testbench, CI, and Boost Integration

Read article
Inertia DevTools Now Available for Firefox image

Inertia DevTools Now Available for Firefox

Read article
Laravel Scalpel Scans for Filesystem Intrusion Evidence image

Laravel Scalpel Scans for Filesystem Intrusion Evidence

Read article
Mercure Broadcasting in Laravel 13.32 image

Mercure Broadcasting in Laravel 13.32

Read article
Super Stack: Laravel Starter Kit With Filament and NativePHP image

Super Stack: Laravel Starter Kit With Filament and NativePHP

Read article
Laravel MCP 1.0 Is Released image

Laravel MCP 1.0 Is Released

Read article