Anda memiliki beberapa masalah dalam kode Anda:
$uploadedfile
tidak pernah dideklarasikan tetapi digunakan untuk menemukan jalur file. Saya berasumsi ini sama dengan$getdeleted
.- Anda memiliki loop foreach di sekitar elemen dalam array Anda yang akan mengambil setiap elemen secara bergantian. Bagaimanapun Anda memodelkan fungsi
deleteGreetings
mengambil seluruh array. Anda harus menghapus panggilan fungsi ini dari loop Anda jika tidak maka akan dipanggil masing-masing untuk setiap elemen dalam array. Anda hanya ingin menelepon ini sekali. - Hanya di akhir pengontrol Anda, Anda memeriksa apakah cid param Anda nol ... apa gunanya? Anda harus memeriksa ini terlebih dahulu sebelum mencoba menjalankan kode lainnya.
Saya akan melakukan sesuatu seperti ini:
$arrayIDs = JRequest::getVar ( 'cid', null, 'default', 'array' );
if ($arrayIDs === null) { //Make sure the cid parameter was in the request
JError::raiseError ( 500, 'cid parameter missing from the request' );
}
$model = & $this->getModel ( 'greetings' );
jimport ( 'joomla.filesystem.file' );
if (is_array ( $arrayIDs ) && count ( $arrayIDs ) > 0) {
$del = $model->deleteGreetings ( $arrayIDs );
// check this outside the loop, if it is inside you are checking it for
// each element in the array. Here we check once and then go forward.
if ($del) {
foreach ( $arrayIDs as $k => $id ) {
$uploadedfile = $model->getUploadpic ( $id );
$deletefile = JPATH_COMPONENT . DS . "uploads" . DS . $uploadedfile;
JFile::delete($deletefile);
//unlink ( $deletefile );
}
}
}