Hook: post.query.builder

Last updated on May 21, 2026 05:07

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