How do i get field type (e.g textfield, option, etc.) from $form_state in below method.

public function validateForm(array &$form, FormStateInterface $form_state)
  • 2
    Can you not get it from $form? It's available right there. – Beebee Jun 15 '16 at 14:25
  • See $form_state['fields'] or something like that. – user21641 Jun 16 '16 at 8:08
  • When you write 'field type' do you mean the entity field type? Or a render element type? – Eyal Jun 17 '16 at 11:55
  • @Eyal render element type – AnD Jun 17 '16 at 12:00

As said before, it is in


You don't need the state for this because it is not a state, it's static.


no filed type in $form_state

you can use $form instead


The render element types are defined using the #type property in the render array.

The only render element that the form state object (might [1]) reference directly is the main form element, via the getCompleteForm method.

[1] the form builder object sets the complete form parameter on the form state while building the form, so I'm the early stages it might not yet be set.


The form state object does hold a reference the form object. Which means that in entity forms, you can get the entity and it's fields from the form state object.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.