Nous devons créer un nouveau groupe d'utilisateurs pour l'installation de notre composant et le code ci-dessous enregistre les données exactement comme prévu. Toutefois, l'extraction de l'ID du groupe d'utilisateurs pour une utilisation ultérieure "ne fonctionne pas".
L'utilisation de JTable renvoie l'identifiant, mais aucun plugin ne sera déclenché - il me manque quelque chose d'évident dans la récupération de l'identifiant de l'enregistrement que le modèle vient d'ajouter?
$model = new UsersModelGroup(array('table_path' => $basePath.'/tables'));
$data = array('parent_id' => '2','title'=>'My Usergroup');
if(!$model->save($data)){
$msg = 'Usergroup was not saved: '.$model->getError();
}else{
$my_new_group_id = $model->get('id'); // Returns "null"
}
Essayez d’utiliser la méthode postSaveHook
qui permet au contrôleur d’accéder aux données du modèle après leur enregistrement.
public function postSaveHook($model, $validData)
{
$item = $model->getItem();
$my_new_group_id = $item->get('id');
}
Même s'il s'agit d'un ancien post. Je voulais poster l'une des solutions qui m'a aidé.
JLoader::import('group', JPATH_ADMINISTRATOR.'/components/com_users/models');
$groupModel = JModelLegacy::getInstance( 'Group', 'UsersModel' );
$groupModel->save($group);
$groupId = $groupModel->getState('group.id');