Hook: post.query.builder
Last updated on May 21, 2026 02:12
Overview
Type: Filter
Location: app/Http/Controllers/Api/V1/PostController.php
Modifies the Eloquent query builder for post listings. Use this to add custom scopes, joins, or where clauses to post queries from modules.
Parameters
| Param | Type | Description |
|---|---|---|
$query |
Builder | Eloquent query builder instance |
$request |
Request | HTTP request object |
Return
Must return the modified Builder instance.
Usage Example
Exclude posts tagged as "internal" from public listings:
Hook::addFilter('post.query.builder', function ($query, $request) {
if (!$request->user()?->hasRole('admin')) {
$query->whereDoesntHave('tags', fn($q) => $q->where('slug', 'internal'));
}
return $query;
});
Related Hooks
- product.query.builder - Same pattern for products