Drupal 8 Отобразить форму профиля пользователя в пользовательском модуле

Я новичок в Drupal 8 и хотел отобразить профиль пользователя (user/[user_id]/edit) на определенной странице, которая будет создана с помощью специального модуля. Я хотел этого, потому что хочу, чтобы пользователи редактировали свой профиль, не переходя на страницу user/[user_id]/edit.

вот что я сделал до сих пор в моем контроллере:

namespace Drupal\my_account\Controller
use Drupal\user\ProfileForm

class MyAccountController{
  public function content(){
   $entity = \Drupal::entityManager()
  ->getStorage('user')
  ->create(array());

  $formObject = \Drupal::entityManager()
  ->getFormObject('user', 'default')
  ->setEntity($entity);

$form = \Drupal::formBuilder()->getForm($formObject);

    return ['form'=>$form];
  }
}

Ему удается отобразить форму, но не содержимое пользователя.


person Shuaib    schedule 02.10.2018    source источник


Ответы (1)


  1. Подготовьте свой пользовательский объект, с которым вы хотите загрузить данные.
  2. Drupal::formBuilder()->getForm(Drupal\user\ProfileForm::class, $user_obj)
person Gorav Singal    schedule 08.10.2018