Ejemplo n.º 1
0
 /**
  * @param $object
  *
  * @return mixed
  */
 private function insert($object)
 {
     //TODO: this should only be done if there is a Delete query pending for the same entity table
     $this->manager->commit();
     $query = $this->manager->getDriver()->getQueryBuilder()->insert($this->getTable());
     $query->values($query->createPositionalParameter(array_filter($this->toArray($object), [Utils::class, 'notNull'])));
     return $this->setFieldValue($object, $this->getPrimaryKey(), $query->query());
 }
Ejemplo n.º 2
0
 public function testSettingBelongsToRelationObjectUpdatesForeignKey()
 {
     $this->expectQueries([['SELECT primaryKey, foreignKey FROM related WHERE primaryKey=?', [2], [['primaryKey' => 2, 'foreignKey' => null]]], ['UPDATE related SET foreignKey=? WHERE primaryKey=?', [1, 2]]]);
     $entity = $this->entityManager->get('HasManyTargetEntity');
     $relationEntity = $this->entityManager->get('HasManyRelationEntity');
     /** @var HasManyTargetEntity $object */
     $object = $entity->get(2);
     $object->belongs = $relationEntity->create(['pk' => 1], true);
     $entity->save($object);
     $this->entityManager->commit();
 }
Ejemplo n.º 3
0
 /**
  * Count selected records
  *
  * @param array $parameters
  *
  * @return mixed
  */
 public function count(array $parameters = [])
 {
     $this->manager->commit();
     $count = $this->applyFilters($this->queryBuilder->select('count(*) as count')->from($this->entity->getTable(), $this->alias))->query(array_merge($this->parameters, $parameters))->fetch();
     return $count['count'];
 }
Ejemplo n.º 4
0
 public function testThatUpdateSetsFields()
 {
     $this->expectQuery('UPDATE test SET field2=? WHERE key=?');
     $this->entityFinder->where('key=?')->update(['field2' => 'foobar']);
     $this->entityManager->commit();
 }