In today's video, I show you a one-word change that can eliminate duplicate eager loading queries in your Laravel app. masteringlaravel.io/daily/2026-0...
@jclermont.com
๐ Author of Mastering Laravel Validation Rules โ๏ธ I post useful Laravel tips https://masteringlaravel.com ๐๏ธ Co-host of https://show.nocompromises.io podcast ๐ Organizer of Milwaukee PHP
In today's video, I show you a one-word change that can eliminate duplicate eager loading queries in your Laravel app. masteringlaravel.io/daily/2026-0...
Deleted code lives on in git history, and AI agents like Claude Code can search through it for you. Here's an example of finding old code when you're not even quite sure what to search for. masteringlaravel.io/daily/2026-0...
When you find messy code, it's tempting to just work around it. But sometimes a small refactor now saves a lot of pain later. masteringlaravel.io/daily/2026-0...
When you suggest deleting dead code, someone always says "but what if I need it later?" Here are four common objections and why none of them hold up. masteringlaravel.io/daily/2026-0...
Commented-out code and dead code might seem harmless, but they cost real money in wasted time and frustration. Here's why you should start deleting. masteringlaravel.io/daily/2026-0...
In today's video, I show how to use Laravel's explicit route model binding to resolve a single URL parameter to one of two different models, no polymorphism required. masteringlaravel.io/daily/2026-0...
Ever wondered why Laravel's composer.json has separate PSR-4 entries for Database\Factories and Database\Seeders instead of just one Database mapping? masteringlaravel.io/daily/2026-0...
We all want fast database queries, but are they always better? Hold your judgement and give this a quick read. masteringlaravel.io/daily/2026-0...
Depending on your expectations, passing an associative array to Eloquent's orWhere method might not do what you think. Here's a real bug I found and the simple fix. masteringlaravel.io/daily/2026-0...
When the same feature exists in three different styles across your codebase, how do you plan an upgrade? In this week's podcast, Aaron and I discuss three approaches and the tradeoffs of each. masteringlaravel.io/daily/2026-0...
In today's video, I show you why $request->get() can silently fail and what to use instead. masteringlaravel.io/daily/2026-0...
A reader question about subqueries across multiple database connections led to an interesting deep dive into how Laravel compiles queries. It turns out whereHas and whereIn behave very differently here. masteringlaravel.io/daily/2026-0...
Tired of stale branch references cluttering your local repo after merging PRs? There's a one-time git config to fix that. masteringlaravel.io/daily/2026-0...
Once again, I missed a bug because the local dev environment was different from the server environment. Don't do it people, learn from my pain! masteringlaravel.io/daily/2026-0...
If you use multiple database connections in Laravel, there's a subtle trap where eager loading can query the wrong database. Here's why it happens and the simple fix. masteringlaravel.io/daily/2026-0...
Do you ever wonder if that code should go in the register or boot method in your service provider? In today's video, I explain the difference with real examples of what goes where and a common rule to make it easy to remember. masteringlaravel.io/daily/2026-0...
A question came up on our YouTube channel about whether a test is really useful or just testing Laravel itself. Here's a simple trick I use to tell the difference. masteringlaravel.io/daily/2026-0...
Before you type up that long explanation, consider recording a quick screencast instead. You might even catch a bug or two in the process. masteringlaravel.io/daily/2026-0...
Remember when limit() inside eager loading constraints didn't work per parent? Laravel 11 quietly fixed that. Time to retest your assumptions. masteringlaravel.io/daily/2026-0...
That 5 * 60 in your config file? Is it really necessary? In this week's podcast, Aaron and I explain why config values should be plain and static. masteringlaravel.io/daily/2026-0...
GitHub versions our code, but what about other important elements like issues and comments? In today's video, I show you how to see a version history for these elements too. masteringlaravel.io/daily/2026-0...
ddRawSql() is great for quick debugging, but there are a few things to watch out for before you rely on it too heavily. masteringlaravel.io/daily/2026-0...
A simple comment on a function name led to a much bigger refactoring. Here's why I've learned to welcome code review feedback instead of resisting it. masteringlaravel.io/daily/2026-0...
The updated_at timestamp should mean something. What are some cases when I might skip updating the timestamps? Here are a couple examples. masteringlaravel.io/daily/2026-0...
After filtering an array, your JSON response might turn from an array into an object. Here's why and how to fix it. masteringlaravel.io/daily/2026-0...
Test-driven development might seem impractical, especially if you're adding tests to existing code. In today's video, I show you how you can get some of the same TDD benefits even when writing tests after the code. masteringlaravel.io/daily/2026-0...
I had a test that was throwing an exception because a user was missing a role. My first inclination was to update the app logic to handle that case, but should that case even be possible? masteringlaravel.io/daily/2026-0...
I've seen some scary things when dealing with various third-party APIS. Today I share a story of a particularly bad one, and how we worked around its messy JSON payload. masteringlaravel.io/daily/2026-0...
Nice write up by the local newspaper on our new family-run video game shop www.gmtoday.com/news_graphic...
If your custom validation rule internally defers to an existing Laravel rule and just inverts the logic, you might be able to avoid the custom rule altogether. Notice what I found in a recent code review. masteringlaravel.io/daily/2026-0...