it-swarm-eu.dev

Come posso ottenere il nuovo ID record dopo aver salvato i dati con JModel?

Dobbiamo creare un nuovo gruppo utenti per l'installazione del nostro componente e il codice seguente salva i dati come previsto. Tuttavia, il recupero dell'ID del gruppo utenti per un utilizzo successivo "non funziona".

L'uso di JTable restituisce l'ID, ma non genererà alcun plug-in. Mi sto perdendo qualcosa di ovvio nel recuperare l'ID del record che il modello ha appena aggiunto?

$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"
}
5
GDP

Prova a utilizzare il metodo postSaveHook che consente al controller di accedere ai dati del modello dopo che sono stati salvati.

public function postSaveHook($model, $validData)
{
    $item = $model->getItem();
    $my_new_group_id = $item->get('id');
}
4
Lodder

Anche se questo è un vecchio post. Volevo pubblicare una delle soluzioni che mi hanno aiutato.

JLoader::import('group', JPATH_ADMINISTRATOR.'/components/com_users/models');
$groupModel = JModelLegacy::getInstance( 'Group', 'UsersModel' );
$groupModel->save($group);
$groupId = $groupModel->getState('group.id');
1
Irfan