getColumnById

This commit is contained in:
Yuri Kuznetsov
2023-04-03 13:20:34 +03:00
parent 937ad48841
commit defe9965d4
2 changed files with 16 additions and 2 deletions
@@ -65,6 +65,8 @@ class GetLinkColumnType extends \Espo\Core\Formula\Functions\Base implements
$entityType = $this->getEntity()->getEntityType();
$repository = $this->entityManager->getRDBRepository($entityType);
return $repository->getRelationColumn($this->getEntity(), $link, $id, $column);
return $repository
->getRelation($this->getEntity(), $link)
->getColumnById($id, $column);
}
}
@@ -487,7 +487,7 @@ class RDBRelation
/**
* Update relationship columns by ID. For many-to-many relationships.
*
* @param array<string,mixed> $columnData Role values.
* @param array<string, mixed> $columnData Role values.
*/
public function updateColumnsById(string $id, array $columnData): void
{
@@ -606,6 +606,18 @@ class RDBRelation
return $this->getMapper()->getRelationColumn($this->entity, $this->relationName, $id, $column);
}
/**
* Get a relationship column value by a foreign record ID. For many-to-many relationships.
*/
public function getColumnById(string $id, string $column): string|int|float|bool|null
{
if ($this->relationType !== Entity::MANY_MANY) {
throw new RuntimeException("Can't get a column of not many-to-many relation.");
}
return $this->getMapper()->getRelationColumn($this->entity, $this->relationName, $id, $column);
}
/**
* @param array<string, mixed>|null $columnData Role values.
* @param array<string, mixed> $options