I have tried to save registration data in a controller.
$values = \Drupal::request()->request->all();
$formBuilder = \Drupal::service('entity.form_builder');
$form = $formBuilder->getForm(User::create(array()), 'register', array());
$formObject = new RegisterForm(\Drupal::entityManager(),
\Drupal::languageManager(), \Drupal::service('entity.query'));
$form_state = (new FormState())->setValues($values);
//$formObject->form($form,$form_state);
$entity = $formObject->buildEntity($form,$form_state);
$formObject->setEntity($entity);
$formObject->form($form,$form_state);
$formObject->submitForm($form,$form_state);
$formObject->save($form,$form_state);
Above code produces this error:
Fatal error: __clone method called on non-object in /home/vagrant/www/drupal8/drupal-8.0.1/core/lib/Drupal/Core/Entity/EntityForm.php on line
It seems I need to inject an "entity" before buildEntity()
.
How did Drupal 8 manage to create a new user? Maybe the container injected that entity some where, but I am unable to find it.