Пример #1
0
 public function update(LinkMany $link)
 {
     foreach ($link->getAdded() as $added) {
         $added->{$this->key} = $link->getModel()->getId();
     }
     foreach ($link->getRemoved() as $added) {
         $added->{$this->key} = null;
     }
 }
Пример #2
0
 /**
  * @covers ::add
  */
 public function testAdd()
 {
     $save = new Save();
     $models = [new Model(), new Model(), new Model(), new Model(), new Model(), new Model()];
     $link1 = new LinkOne($models[0], Model::getRepo()->getRel('one'), $models[1]);
     $link1->set($models[5]);
     $link2 = new LinkMany($models[1], Model::getRepo()->getRel('many'), [$models[2], $models[3]]);
     $link2->remove($models[3]);
     $link2->add($models[4]);
     Model::getRepo()->addLink($link1)->addLink($link2);
     $save->add($models[0]);
     $this->assertCount(count($models), $save);
     foreach ($models as $model) {
         $this->assertTrue($save->has($model));
     }
 }
Пример #3
0
 /**
  * @covers ::getFirst
  */
 public function testGetFirst()
 {
     $link = $this->getLinkMany();
     $item = $link->get()->getFirst();
     $this->assertSame($item, $link->getFirst());
     $link = new LinkMany(new Model(), $this->getRelMany(), []);
     $first = $link->getFirst();
     $this->assertInstanceof(__NAMESPACE__ . '\\Model', $first);
     $this->assertTrue($first->isVoid());
 }