# Field Directives
Field directives can be applied to any FieldDefinition
Perhaps the most important directive interface, a
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.
\Nuwave\Lighthouse\Support\Contracts\FieldMiddleware directive allows you
to wrap around the field resolver, just like Laravel Middleware.
You may use it both to handle incoming values before reaching the final resolver as well as the outgoing result of resolving the field.
directive can be used to manipulate the schema AST.
This directive type is implemented as an abstract class rather then a pure interface and allows you to define complex validation rules for a field with ease.