Je veux voir toutes les valeurs dans mon formulaire d'édition, j'ai essayé dsm($form_state->getValues())
mais je ne reçois rien.
si je fais dsm($form_state)
Je reçois trop de choses à regarder.
quelle est la syntaxe correcte pour obtenir uniquement les valeurs de mon formulaire dans la page d'édition.
La form_state->getValues()
ne fonctionne que pendant le processus de validation et de soumission. Au lieu de cela, vous devez rechercher la variable $form
Pour les valeurs. Malheureusement, vous ne pouvez pas obtenir toutes les valeurs facilement, vous devez creuser dans le formulaire lui-même:
$form['title']['widget'][0]['value']['default_value'];
EDIT J'étais en train d'étudier cela plus et il pourrait y avoir un moyen plus propre.
Vous devez d'abord obtenir l'objet formulaire à partir de la variable $form_state
. À partir de là, vous pouvez utiliser la fonction getEntity()
pour obtenir réellement l'entité que le formulaire modifie. Ensuite, si vous voulez obtenir une valeur, vous pouvez utiliser la méthode get('field_name')
ou si vous voulez que toutes les valeurs utilisent toArray()
// Get the entire node as an array and will include all values
$node = $form_state->getFormObject()->getEntity()->toArray();
ou
// Get the entity object
$node = $form_state->getFormObject()->getEntity();
// Get the field
$node->get('field_my_field');
// Get the field as a string (returns value)
$node->get('field_my_field')->getString();
Si je comprends bien la question, un moyen rapide de le faire est de passer un tableau vide à getValue()
. Par exemple:
$form_values = $form_state->getValue(array());
Cela renverra également des éléments tels que des éléments d'objet, mais il ne devrait pas être difficile de le couper uniquement aux valeurs souhaitées.