it-swarm.com.de

ID des gespeicherten JModelForm

Ich speichere ein Modell vom Controller wie unten erwähnt.

$model->save($data);

Meine Modellspeicherfunktion sieht wie folgt aus.

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

}

Nach dem Speichern des Modells im Controller (was gut funktioniert) muss ich einige zugehörige Daten speichern, für die ich die ID des gespeicherten Modells benötige. Ich habe Folgendes versucht, in der Hoffnung, dass einer von ihnen die ID zusammen mit anderen Informationen zurückgibt, aber bisher keinen Erfolg hat.

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

Es sollte nicht so schwierig sein, die ID eines Modells zu ermitteln, daher muss mir hier etwas Grundlegendes fehlen.

2
yetanotherse

Der Datenbanktreiber fügt das Ergebnis nach dem Speichern wieder in die Tabelle ein.

Also sollte so etwas wie next funktionieren:

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