it-swarm-id.com

ID JModelForm yang disimpan

Saya menyimpan model dari pengontrol seperti yang disebutkan di bawah ini.

$model->save($data);

Fungsi save model saya terlihat seperti yang ditunjukkan di bawah ini.

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

}

Setelah menyimpan model dalam pengontrol (yang berfungsi dengan baik), saya perlu menyimpan beberapa data terkait yang saya perlukan ID dari model yang disimpan. Saya mencoba yang berikut berharap salah satu dari mereka akan mengembalikan ID bersama dengan informasi lain tetapi sejauh ini tidak berhasil.

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

Mendapatkan ID suatu model seharusnya tidak sesulit itu jadi saya harus melewatkan sesuatu yang mendasar di sini.

2
yetanotherse

Pengandar basis data akan menambahkan hasilnya kembali ke Tabel setelah menyimpan.

Jadi, sesuatu seperti selanjutnya harus bekerja:

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