Exemple #1
0
 /**
  * Delete selected records.
  *
  * @return int Number of deleted records.
  */
 public function delete()
 {
     $selection = new DeleteSelectionBuilder($this->getSource());
     return $selection->delete();
 }
 public function testDelete()
 {
     $data = [['id' => 1, 'name' => 'foo'], ['id' => 2, 'name' => 'bar'], ['id' => 3, 'name' => 'foobar']];
     // Delete all
     $source = new ArrayDataSource($data);
     $selection = new DeleteSelectionBuilder($source);
     $selection->delete();
     $this->assertEmpty($source->getData());
     // Delete with a predicate
     $source = new ArrayDataSource($data);
     $selection = new DeleteSelectionBuilder($source);
     $selection->where('id <= %i', 2)->delete();
     $this->assertEquals(1, count($source->getData()));
     $this->assertArrayHasKey(2, $source->getData());
     $this->assertEquals([2 => $data[2]], $source->getData());
     // Delete with a limit
     $source = new ArrayDataSource($data);
     $selection = new DeleteSelectionBuilder($source);
     $selection->limit(1)->delete();
     $this->assertEquals(2, count($source->getData()));
     $this->assertEquals([1 => $data[1], 2 => $data[2]], $source->getData());
     // Delete sorted with a limit
     $source = new ArrayDataSource($data);
     $selection = new DeleteSelectionBuilder($source);
     $selection->orderByDescending('id')->limit(1)->delete();
     $this->assertEquals(2, count($source->getData()));
     $this->assertEquals([0 => $data[0], 1 => $data[1]], $source->getData());
 }