Du har et par problemer i din kode:
$uploadedfile
er aldrig erklæret, men det bruges til at finde filstien. Jeg antager, at dette er det samme som$getdeleted
.- Du har en forreste løkke rundt om elementerne i dit array, som opfanger hvert element efter tur. Uanset hvordan du modellerer funktionen
deleteGreetings
tager hele arrayet. Du bør fjerne dette funktionskald fra din løkke, ellers vil det blive kaldt for hvert element i arrayet. Du vil kun ringe til dette én gang. - Kun i slutningen af din controller tjekker du, om din cid-param er null ... hvad er meningen? Du bør tjekke dette først, før du prøver at køre nogen af de andre koder.
Jeg ville gøre noget som dette:
$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 );
}
}
}