it-swarm-tr.com

Kaydedilen JModelForm'un kimliği

Bir modeli kontrolörden aşağıda belirtildiği gibi kaydediyorum.

$model->save($data);

Model kaydetme fonksiyonum aşağıdaki gibi görünüyor.

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

}

Modeli kontrol cihazına kaydettikten sonra (ki bu iyi çalışıyor), kaydedilmiş modelin kimliğine ihtiyacım olan bazı ilişkili verileri kaydetmem gerekiyor. Bunlardan birinin diğer bilgilerle birlikte kimliği döndürmesini ancak şimdiye kadar hiç başarı getirmemesini umarak aşağıdakileri denedim.

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

Bir modelin kimliğini almak o kadar zor olmamalı, bu yüzden burada temel bir şey eksik olmalı.

2
yetanotherse

Veritabanı sürücüsü kaydettikten sonra sonucu tekrar Tabloya ekleyecektir.

Yani, bir sonraki gibi bir şey çalışmalı:

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