it-swarm-eu.dev

ID del JModelForm salvato

Sto salvando un modello dal controller come indicato di seguito.

$model->save($data);

La mia funzione di salvataggio del modello appare come mostrato di seguito.

public function save($data)
{
    $id = (!empty($data['id'])) ? $data['id'] : (int)$this->getState('rev.id');
    $state = (!empty($data['state'])) ? 1 : 0;
    $user = JFactory::getUser();

    if($id) {
        //Check the user can edit this item
        $authorised = $user->authorise('core.edit', 'com_customroi.rev.'.$id) || $authorised = $user->authorise('core.edit.own', 'com_customroi.rev.'.$id);
        if($user->authorise('core.edit.state', 'com_customroi.rev.'.$id) !== true && $state == 1){ //The user cannot edit the state of the item.
            $data['state'] = 0;
        }
    } else {
        //Check the user can create new items in this section
        $authorised = $user->authorise('core.create', 'com_customroi');
        if($user->authorise('core.edit.state', 'com_customroi.rev.'.$id) !== true && $state == 1){ //The user cannot edit the state of the item.
            $data['state'] = 0;
        }
    }

    if ($authorised !== true) {
        JError::raiseError(403, JText::_('JERROR_ALERTNOAUTHOR'));
        return false;
    }

    $table = $this->getTable();
    if ($table->save($data) === true) {
        return $id;
    } else {
        return false;
    }

}

Dopo aver salvato il modello nel controller (che funziona correttamente), devo salvare alcuni dati associati per i quali ho bisogno dell'ID del modello salvato. Ho provato quanto segue sperando che uno di loro restituisca l'ID insieme ad altre informazioni, ma finora nessun successo.

$model->getProperties();
$model->getState('rev.id');

Ottenere l'ID di un modello non dovrebbe essere così difficile, quindi qui mi manca qualcosa di base.

2
yetanotherse

Il driver del database aggiungerà nuovamente il risultato alla tabella dopo il salvataggio.

Quindi, qualcosa come il prossimo dovrebbe funzionare:

$table = $this->getTable();
if ($table->save($data) === true) {
    return $table->id;
} else {
    return false;
}
2
Fedik