Mastering Laravel's Latest: New Session Directives and Advanced Testing Tools
Overview
continues to refine its developer experience with the release of versions 10.37 and 10.38. These updates focus on reducing boilerplate code in templates and providing more granular control within the testing suite. By introducing more intuitive syntax for session handling and job assertions, the framework empowers developers to write cleaner, more expressive code.
Prerequisites
To get the most out of these features, you should be comfortable with basic syntax and the framework. Familiarity with templating, or testing patterns, and the for queued jobs will help you implement these changes effectively.
Key Libraries & Tools
- 10.37/10.38: The core framework providing these new helpers.
- : Laravel's powerful templating engine.
- : The testing framework used to validate route redirections and job chains.
Code Walkthrough
Simplified Session Display
Previously, displaying a flash message required manual checks via the session helper. The new @session directive automates this and provides a local $value variable.
@session('status')
<div class="alert alert-success">
{{ $value }}
</div>
@endsession
Improved Route Testing
When testing redirects, we often need to specify where a user originated. The fromRoute method replaces the generic from method, allowing you to use route names instead of hardcoded URLs.
$response = $this->actingAs($user)
->fromRoute('news.edit', ['news' => $news])
->put(route('news.update', $news), $data);
$response->assertRedirect();
Asserting Chained Jobs via Closures
You can now inspect the specific properties of a chained job using a closure, ensuring that the correct data passes through the queue.
Bus::fake();
// Run the logic...
Bus::assertChained([
function (ReleasePodcast $job) {
return $job->podcastId === 1;
}
]);
Syntax Notes
The @session directive is a specialized conditional. It only renders its content if the specified key exists in the session, automatically injecting the value into a scoped $value variable. In testing, the assertValidationError method now accepts an array of strings, allowing you to verify that multiple validation rules (like string and min:5) failed simultaneously for a single input field.
Tips & Gotchas
When using the new closure-based job assertions, always type-hint the job class in the closure signature. This ensures can correctly match the job in the chain. For the @session directive, remember that it specifically looks for flashed data; it won't replace standard persistent session logic for long-term data storage.
- 29%· software
- 21%· software
- 14%· software
- 7%· people
- 7%· software
- Other topics
- 21%

New Session Directive, FromRoute Method, Assert Chained Jobs Via Closure & More
WatchLaravel // 5:30
The official YouTube channel of Laravel, the clean stack for Artisans and agents. We will update you on what's new in the world of Laravel, from the framework to our products Cloud, Forge, and Nightwatch.