Laravel 12.21.0 – A Smart Update for Cleaner Queries and Stricter Validation
August 3, 2025Laravel 12.21.0 introduces two game-changing features aimed at writing cleaner, more maintainable code. The update includes the new whereValueBetween() method and stricter validation rules for boolean and numeric fields.
1. whereValueBetween() : Elegant Range Filtering Across Two Columns
The new whereValueBetween() method allows you to check if a given value (such as user age or order amount) lies between the values of two different columns—without writing complex raw conditions. Here's how it works:
$users = DB::table('users')
->whereValueBetween('age', 'min_age', 'max_age')
->get();
Previously, you'd have to write something like this:
$users = DB::table('users')
->whereColumn('min_age', '<=', 'age')
->whereColumn('max_age', '>=', 'age')
->get();
With whereValueBetween() , your query is cleaner and more expressive, aligning better with the intent of your logic—this leads to easier debugging and more readable code.
2. Stricter Validation: Better Accuracy, Fewer Surprises
Laravel 12.21.0 also brings improvements to data validation by applying strict rules to 'accepted' and 'numeric' validations.
What's changed:
'accepted': Now only accepts valuestrue,'1', or1. Other values like'yes'or'on'will fail the validation.'numeric': Rejects non-numeric values such asnullor'abc', even if they are string representations.
This change improves input reliability and prevents invalid data from being mistakenly accepted—especially helpful when users interact with your front-end carelessly or maliciously.
3. Real-World Benefits
These enhancements provide you with:
- Less repetitive code in complex query logic
- More accurate validation and fewer bugs caused by bad input
- Cleaner code that aligns with SOLID principles and Clean Code standards
4. How to Start Using These Features
- Make sure your Laravel installation is updated to 12.21.0 or later.
- Use whereValueBetween() whenever you need to compare a value across two columns.
- Revisit your validation logic to benefit from the stricter checks in 'accepted' and 'numeric' .
💡 Pro Tip: Run your test suite after upgrading to ensure your application behaves exactly as expected.
Blog
Jul 31, 2025
The useCallback hook in React is used to return a memoized version of a callback function, so it's only recreated when its dependencies change. The...
Jul 24, 2025
🧠 What is Dynamic Import? Dynamic import allows you to load JavaScript modules at runtime—only when needed. This approach is fantastic for r...
Jul 20, 2025
🔧 1. Laravel 12.0 – Starter Kits & Core Changes Version 12.0 introduced modern starter kits for React, Vue, Livewire, plus integratio...
Jun 26, 2025
Guide to Scroll‑Driven Animations with CSS CSS animations can now be linked to user scrolling without any JavaScript — just pure CSS. 1. Thr...
Sep 13, 2025
If you want to send Push Notifications from your Laravel app to mobile or web clients, the fastest and simplest way is to use Notifire. It integrate...
Jun 26, 2025
CSS Specificity: Cascade Layers vs BEM vs Utility Classes This article compares three approaches to managing CSS specificity — BEM, utility‑f...