Ошибка обновления пользователя FOS


Я работаю над проектом Symfony 2,8 с Sonata. Я обнаружил, что пользователи управляются с помощью FOS:

namespace Voyage\AdminBundle\Admin;

use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use Sonata\UserBundle\Model\UserInterface;
use FOS\UserBundle\Model\UserManagerInterface;

class UserCoreAdmin extends Admin {

    /**
     * {@inheritdoc}
     */
    public function getFormBuilder() {
        //...
    }

    /**
     * {@inheritdoc}
     */
    public function getExportFields() {
        // avoid security field to be exported
    }

    /**
     * {@inheritdoc}
     */
    protected function configureListFields(ListMapper $listMapper) {
        //...
    }

    /**
     * {@inheritdoc}
     */
    protected function configureDatagridFilters(DatagridMapper $filterMapper) {
       //...
    }

    /**
     * {@inheritdoc}
     */
    protected function configureShowFields(ShowMapper $showMapper) {
    //...
    }

    /**
     * {@inheritdoc}
     */
    protected function configureFormFields(FormMapper $formMapper) {
        //...
    }
    /**
     * {@inheritdoc}
     */
    public function preUpdate($user) {
        $this->getUserManager()->updateCanonicalFields($user);
        $this->getUserManager()->updatePassword($user);
    }
    /**
     * @param UserManagerInterface $userManager
     */
    public function setUserManager(UserManagerInterface $userManager) {
        $this->userManager = $userManager;
    }
    /**
     * @return UserManagerInterface
     */
    public function getUserManager() {
        return $this->userManager;
    }
}

И я получаю эту ошибку при обновлении пользователя:

Примечание: Неопределенное свойство: Вояж\AdminBundle\Администратор\Администратор пользователя::$UserManager

500 Внутренняя ошибка сервера - исключение ContextErrorException

Author: greg0ire, 2016-09-13

2 answers

Вы должны расширить Sonata\UserBundle\Admin\Entity\UserAdmin, он должен обладать этим свойством, в отличие от Sonata\AdminBundle\Admin\Admin.

 0
Author: greg0ire, 2016-09-13 11:50:41

В сервисах отсутствовала конфигурация.yml, отсутствовал вызов SetUserManager.

- [ setUserManager, [ @fos_user.user_manager]]      
 0
Author: t.c, 2016-09-19 11:47:05