[TYPO3-UG Italy] Aggiungere un fe_group in fase di creazione di un fe_user
Gianpaolo Scrigna
letsjump at gmail.com
Mon Mar 10 16:17:57 CET 2014
Ciao a tutti.
Sto sviluppando una estensione personalizzata per typo3 > 6.1 con extbase.
Tra le varie cose, crea un nuovo fe_user in base ai dati ricevuti da una
form.
Tutto bene finchè non tento di assegnargli un fe_group predefinito.
Ecco il repository:
class WizardRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
/**
* frontEndUserRepository
*
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
* @inject
*/
protected $frontEndUserRepository;
/**
* frontEndUserGroup
*
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository
* @inject
*/
protected $frontEndUserGroupRepository;
/**
* persistence manager
*
* @var \TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface
* @inject
*/
protected $persistenceManager;
/**
* instanzia la sessione
*
* @return
*/
public function __construct() {
session_start();
parent::__construct();
}
... altri metodi ...
public function addFeUser($array, $settings) {
$user = new $this->frontEndUserRepository;
$user->setEmail($args['p-email']);
$user->setUsername($args['p-email']);
$user->setName($args['p-nome']);
...
$groupObj = $this->frontEndUserGroupRepository->findOneByUid(2);
$user->setUsergroup($groupObj);
$add = $this->frontEndUserRepository->add($user);
$this->persistenceManager->persistAll();
return $user;
}
Commentando la riga $user->setUsergroup($groupObj); l'utente viene
correttamente scritto a DB e restituito dal metodo, invece tentando di
assegnargli il gruppo ottengo l'errore
*#1: PHP Catchable Fatal Error: Argument 1 passed to
TYPO3\CMS\Extbase\Domain\Model\FrontendUser::setUsergroup() must be an
instance of TYPO3\CMS\Extbase\Persistence\ObjectStorage, instance of
TYPO3\CMS\Extbase\Domain\Model\FrontendUserGroup given, called in
/home/www/mydir/typo3conf/ext/myext/Classes/Domain/Repository/WizardRepository.php
on line 191 and defined in
/home/letsjump/www/0-LIBS/typo3/typo3_src-6.1.7/typo3/sysext/extbase/Classes/Domain/Model/FrontendUser.php
line 200*
Dove sbaglio? Qualcuno ha esperienza nell'instanziare oggetti con
objectManager e namespaces? In giro trovo poca documentazione e molto
confusa.
Grazie in anticipo!
More information about the TYPO3-UG-Italy
mailing list