Example #1
0
 /**
  * Delete objects matching a condition against linked objects
  *
  * @param CriteriaElement|null $criteria criteria to match
  *
  * @return false|int count of objects
  *
  * @todo DELETE ... LEFT JOIN is not portable
  * Note Alain91 : multi tables delete is not allowed in Doctrine
  */
 public function deleteByLink(CriteriaElement $criteria = null)
 {
     if (!$this->validateLinks()) {
         return false;
     }
     if (empty($criteria)) {
         //avoid delete all records
         return false;
     }
     $sql = "DELETE FROM {$this->handler->table} AS o " . "LEFT JOIN {$this->handler->table_link} AS l " . "ON o.{$this->handler->field_object} = l.{$this->handler->field_link}";
     if (isset($criteria) && $criteria instanceof CriteriaElement) {
         $sql .= " " . $criteria->renderWhere();
     }
     return $this->handler->db2->executeUpdate($sql);
 }