コード例 #1
0
ファイル: HasMany.php プロジェクト: harp-orm/harp
 /**
  * @param  LinkMany      $link
  */
 public function update(LinkMany $link)
 {
     foreach ($link->getAdded() as $added) {
         $added->{$this->getForeignKey()} = $link->getModel()->{$this->getKey()};
     }
     foreach ($link->getRemoved() as $added) {
         $added->{$this->getForeignKey()} = null;
     }
 }
コード例 #2
0
ファイル: HasManyThrough.php プロジェクト: harp-orm/harp
 public function insert(LinkMany $link)
 {
     $inserted = new Models();
     if (count($link->getAdded()) > 0) {
         $through = $link->getModel()->getLink($this->through);
         $repo = $this->getThroughRepo();
         foreach ($link->getAdded() as $added) {
             $inserted->add($repo->newModel([$this->getKey() => $link->getModel()->getId(), $this->getForeignKey() => $added->getId()]));
         }
         $through->get()->addAll($inserted);
     }
     return $inserted;
 }
コード例 #3
0
ファイル: LinkManyTest.php プロジェクト: harp-orm/harp
 /**
  * @covers ::getAdded
  */
 public function testGetAdded()
 {
     $link = new LinkMany(new Country(), Country::getRepo()->getRel('cities'), [new City()]);
     $models = [new City(), new City()];
     $link->add($models[0]);
     $link->add($models[1]);
     $added = $link->getAdded();
     $this->assertInstanceOf('Harp\\Harp\\Model\\Models', $added);
     $this->assertSame($models, $added->toArray());
 }