Product::where('category_id', 5)->get();
The answer will be even more confusing: it depends on Laravel version.
You see, the change was made in Laravel 5.3.
Up until 5.2, where() meant "identical" comparison. And if you wanted to use "equal" operator, there was a special function whereLoose().
From Laravel 5.3, it's the other way around: default where() means "equal" or "loose" comparison, and if you want do perform "strict" comparison - you can use whereStrict() function.
If you want to read more, here's the link to the official 5.3 documentation.
Enjoyed This Tutorial?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses on Laravel Daily
AI Agents/IDEs for Laravel: May 2026 (Claude Code, Codex, OpenCode, etc)
7 lessons
52 min
Roles and Permissions in Laravel 13
14 lessons
57 min
Laravel 13 Eloquent: Expert Level
41 lessons
1 h 34 min
No comments yet…