atk4\data\Model::reload PHP Method

reload() public method

Reload model by taking its current ID.
public reload ( )
    public function reload()
    {
        $id = $this->id;
        $this->unload();
        $this->load($id);
        return $this;
    }

Usage Example

Example #1
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']);
 }