# Field Directives
Field directives can be applied to any FieldDefinition (opens new window)
# FieldResolver
Perhaps the most important directive interface, a \Nuwave\Lighthouse\Support\Contracts\FieldResolver
(opens new window)
let's you add a resolver for a field through a directive.
It can be a great way to reuse resolver logic within a schema.
# FieldMiddleware
A \Nuwave\Lighthouse\Support\Contracts\FieldMiddleware
(opens new window) directive allows you
to wrap around the field resolver, just like Laravel Middleware (opens new window).
You may use it both to handle incoming values before reaching the final resolver as well as the outgoing result of resolving the field.
# FieldManipulator
An \Nuwave\Lighthouse\Support\Contracts\FieldManipulator
(opens new window)
directive can be used to manipulate the schema AST.