sql >> Database >  >> RDS >> Mysql

verwijder geüpload bestand uit een array van id's wanneer ze worden verwijderd in joomla?

Je hebt een paar problemen met je code:

  1. $uploadedfile wordt nooit gedeclareerd, maar wordt gebruikt om het bestandspad te vinden. Ik neem aan dat dit hetzelfde is als $getdeleted .
  2. Je hebt een foreach-lus rond de elementen in je array die elk element op zijn beurt oppikt. Hoe je de functie ook modelleert deleteGreetings neemt de hele array in beslag. U moet deze functieaanroep uit uw lus verwijderen, anders wordt deze voor elk element in de array aangeroepen. Je wilt dit maar één keer bellen.
  3. Alleen aan het einde van je controller controleer je of je cid-param nul is ... wat heeft het voor zin? U moet dit eerst controleren voordat u een van de andere code probeert uit te voeren.

Ik zou zoiets als dit doen:

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



  1. MySQL:fout in uw SQL-syntaxis ... in de buurt van sleutel ...?

  2. Parameter gebruiken als kolomnaam in Postgres-functie

  3. MariaDB 10.3-replicatie instellen met Ansible en Vagrant

  4. Hoe automatisch identiteit voor een Oracle-database genereren via Entity Framework?