示例#1
0
 public function delete($entity)
 {
     $delete = new Delete($this->tableName);
     foreach ($this->connectionFactory->getTable($this->tableName)->getTableColumns() as $column) {
         if ($column->getIsPrimary()) {
             $value = $column->getDefault();
             $name = $column->getName();
             if (method_exists($entity, 'get' . $name)) {
                 $value = $entity->{'get' . $name}();
             } elseif (method_exists($entity, $name)) {
                 $value = $entity->{$name}();
             } elseif (isset($entity->{$name})) {
                 $value = $entity->{$name};
             }
             $delete->whereEquals($name, $value);
         }
     }
     if (!$delete->hasCondition()) {
         throw new QueryError('No condition found');
     }
     $this->connectionFactory->query($delete);
 }