Laravel 7.15 Released

Laravel 7.15 Released

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]);

            collect()->pad($ticket_quantity, [])

    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:


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.



  • 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 Model::withoutEvents() not registering listeners inside boot() (#33149, 4bb32ae)

Filed in: News / Laravel 7 / Releases


Join 31,000+ others and never miss out on new tips, tutorials, and more.

Laravel News Partners

Laravel Jobs

Senior Full-Stack Engineer
[REMOTE: USA Only] All Other Applications Will be Rejected Immediately"
Senior Full Stack PHP Developer
Motto Design Studio
👉 Looking for Senior Back-End Laravel API Developer - Immediate (Full-time Contractor) 🎉
Remote // The Document Signing Experience™
Senior Software Engineer
Remote or Los Angeles
Sr. Software Engineer
Salt Lake City, UT