isDirty() public method

Will return true if any of the specified fields are dirty.
public isDirty ( $fields = [] ) : boolean
return boolean
Ejemplo n.º 1
0
 public function testDirtyTimestamp()
 {
     $sql_time = '2016-10-25 11:44:08';
     $a = ['types' => [['date' => $sql_time]]];
     $this->setDB($a);
     $db = new Persistence_SQL($this->db->connection);
     $m = new Model($db, ['table' => 'types']);
     $m->addField('ts', ['actual' => 'date', 'type' => 'datetime']);
     $m->loadAny();
     $m['ts'] = clone $m['ts'];
     $this->assertFalse($m->isDirty('ts'));
 }
Ejemplo n.º 2
0
 public function testPersist()
 {
     $db = new Persistence_SQL($this->db->connection);
     $a = ['item' => [1 => ['id' => 1, 'name' => 'John', 'surname' => 'Smith']]];
     $this->setDB($a);
     $m = new Model($db, 'item');
     $m->addField('name', ['never_persist' => true]);
     $m->addField('surname', ['never_save' => true]);
     $m->load(1);
     $this->assertNull($m['name']);
     $this->assertEquals('Smith', $m['surname']);
     $m['name'] = 'Bill';
     $m['surname'] = 'Stalker';
     $m->save();
     $this->assertEquals($a, $this->getDB());
     $m->reload();
     $this->assertEquals('Smith', $m['surname']);
     $m->getElement('surname')->never_save = false;
     $m['surname'] = 'Stalker';
     $m->save();
     $a['item'][1]['surname'] = 'Stalker';
     $this->assertEquals($a, $this->getDB());
     $m->addHook('beforeSave', function ($m) {
         if ($m->isDirty('name')) {
             $m['surname'] = $m['name'];
             unset($m['name']);
         } elseif ($m->isDirty('surname')) {
             $m['name'] = $m['surname'];
             unset($m['surname']);
         }
     });
     $m['name'] = 'X';
     $m->save();
     $a['item'][1]['surname'] = 'X';
     $this->assertEquals($a, $this->getDB());
     $this->assertNull($m['name']);
     $this->assertEquals('X', $m['surname']);
     $m['surname'] = 'Y';
     $m->save();
     $this->assertEquals($a, $this->getDB());
     $this->assertEquals('Y', $m['name']);
     $this->assertEquals('X', $m['surname']);
 }