2016-09-13 1 views
2

Je travaille sur un projet Symfony 2,8 avec Sonata. Je trouve que les utilisateurs sont gérés avec FOS:FOS Erreur de mise à jour utilisateur

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; 
    } 
} 

et je reçois cette erreur tout en faisant une mise à jour de l'utilisateur:

Avis: Undefined property: Voyage \ AdminBundle \ Admin \ UserCoreAdmin :: $ userManager

500 Internal Server Error - ContextErrorException

Répondre

0

Il s'agissait d'une config manquante dans services.yml, un appel à SetUserManager était manquant.

- [ setUserManager, [ @fos_user.user_manager]]  
0

vous devez étendre Sonata\UserBundle\Admin\Entity\UserAdmin, il devrait avoir cette propriété, par opposition à Sonata\AdminBundle\Admin\Admin.

+0

Je ne travaillais pas! merci –

+0

Vous n'avez pas travaillé? Bien être moins paresseux ... – greg0ire

+0

Ça n'a pas marché! désolé –