News

Laravel 7.15 Released

Published
Laravel 7.15 Released image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team released v7.15.0 with a withToken() test helper, a new model method to define relationships between models outside of a class definition, along with the latest new features, fixes, and changes in the 7.x branch:

Extendable Relations for Models

Gergő D. Nagy contributed a resolveRelationUsing method to models, which allows defining relationships between models from outside of model class definitions:

Order::resolveRelationUsing('customer', function ($model) {
return $model->belongsTo(Customer::class, 'customer_id');
});

The withToken() Test Helper

Aryeh Raber contributed the withToken() HTTP test helper:

// Using withHeader
$response = $this->withHeader('Authorization', 'Bearer test_token')->postJson('/some-endpoint');
 
// The new withToken() helper
$response = $this->withToken('test_token')->postJson('/some-endpoint');

Make Many Models

Ahmed Sayed contributed a makeMany() to create many related models without saving. The pull request provides the following example:

public function orderTickets(string $email, int $ticket_quantity)
{
$order = $this->orders()->create(['email' => $email]);
 
$order->tickets()->insert(
$order->tickets()->makeMany(
collect()->pad($ticket_quantity, [])
)->toArray()
);
 
return $order;
}

Foreign UUID Column Definition

Paul Adams contributed a foreignUuid() column definition for UUID foreign keys. Here are some examples from the pull request’s tests:

$table->foreignUuid('company_id')->constrained();
$table->foreignUuid('laravel_idea_id')->constrained();
$table->foreignUuid('team_id')->references('id')->on('teams');
$table->foreignUuid('team_column_id')->constrained('teams');

Set the Event Handler Queue

@lupinitylabs contributed the ability to define a viaQueue() method to define which queue to use:

This pull request proposes a non-breaking change to the Dispatcher class that allows a user to set the queue name by defining a viaQueue() method within the Listener, as it is already done with retryAfter and retryUntil methods.

If no getQueue method is defined, the code falls back to use the $queue attribute or null, as it was before.

The benefit of this change is to provide developers with a flexible way to influence the target queues instead of having to hard code them.

Release Notes

You can see the full list of new features and updates below and the diff between 7.14.0 and 7.15.0 on GitHub.

v7.15.0

Added

  • Added extendable relations for models (#33025)
  • Added Illuminate\Foundation\Testing\Concerns\MakesHttpRequests::withToken() (#33075, 79383a1)
  • Added the ability to Illuminate\Database\Eloquent\Relations\HasOneOrMany::makeMany() (create many without saving) (#33021)
  • Added Illuminate\Database\Schema\Blueprint::foreignUuid() (#33129)
  • Allow setting the event handler queue via a viaQueue() method (#32770, 852a927)

Fixed

  • Fixed Model::withoutEvents() not registering listeners inside boot() (#33149, 4bb32ae)
Paul Redmond photo

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

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Securing Filament plugins with Plumb image

Securing Filament plugins with Plumb

Read article
LayaPHP: Self-Hosted Text Classification for PHP and Laravel image

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Read article
WhenMounted and BigInt Props in Inertia.js v3.8 image

WhenMounted and BigInt Props in Inertia.js v3.8

Read article
Postcodes for Laravel: GB Postcode Lookup and Geography Data image

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Read article
Laravel 14 Adds a defaults() Method to Eloquent Models image

Laravel 14 Adds a defaults() Method to Eloquent Models

Read article
Laravel AI SDK and Laravel MCP Security Fixes: Update Now image

Laravel AI SDK and Laravel MCP Security Fixes: Update Now

Read article