Laravel Updates: Streamlining Command Failures and Collection Handling
Mapping Model Events with Artisan
continues to enhance its introspection tools. The model:show command now displays a dedicated section for model events. By utilizing the $dispatchesEvents property within an Eloquent model, you can map standard lifecycle events like updated or deleted to custom event classes. This update ensures that when you inspect a model via the command line, you see a comprehensive map of these triggers, making it easier to debug complex side effects in your application.
The New Unshift Collection Method
While developers have long used array_unshift to prepend items to an array, the class previously lacked a direct counterpart. This week's update introduces the unshift method. Unlike the native PHP function—which modifies the array in place and returns a count—the collection version provides a fluent interface for adding elements to the beginning of the set. This fills a small but significant gap in the collection API, keeping your data manipulation syntax consistent and expressive.
Expanding Mailable Templates
Creating mailables just became more flexible. The make:mail command includes a new --view option. Previously, developers often chose between a basic class or a full template. This new flag generates a standard file alongside the mailable class. It’s a perfect middle ground for when you don't need the constraints of Markdown but still want a pre-linked, empty view file ready for custom HTML structure.
Refined Command Failure Logic
Handling errors in custom Artisan commands used to require a mix of manual error printing and explicit exit codes. The new fail method simplifies this. By calling $this->fail('Message'), the framework automatically outputs the error message and returns the non-zero status code necessary for CI/CD pipelines or task schedulers to recognize a failure. This replaces clunky try-catch blocks with a single, clean line of code.
The Contains Validation Rule
Validation logic often requires verifying that a specific value exists within a submitted array. While the in rule checks if a value exists within a whitelist, the new contains rule does the opposite: it ensures an incoming array includes a required value. This is particularly useful for scenarios like mandatory course enrollments or required tag selections where the presence of a specific item is non-negotiable.
- 17%· products
- 17%· products
- 17%· products
- 17%· products
- 17%· products
- 17%· languages

Manually Fail A Command, Unshift, Contains & More
WatchLaravel // 9:48
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.