# 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.