parent fields

This commit is contained in:
Yuri Kuznetsov
2014-01-14 17:50:36 +02:00
parent 4e4422485b
commit 4df941bd92
2 changed files with 16 additions and 5 deletions
+4 -1
View File
@@ -45,8 +45,11 @@ class SelectManager
{
if (!empty($params['sortBy'])) {
$result['orderBy'] = $params['sortBy'];
if ($this->metadata->get("entityDefs.{$this->entityName}.fields." . $result['orderBy'] . ".type") == 'link') {
$type = $this->metadata->get("entityDefs.{$this->entityName}.fields." . $result['orderBy'] . ".type");
if ($type == 'link') {
$result['orderBy'] .= 'Name';
} else if ($type == 'linkParent') {
$result['orderBy'] .= 'Type';
}
}
if (isset($params['asc'])) {
+12 -4
View File
@@ -70,9 +70,9 @@ class Record extends \Espo\Core\Services\Base
return $entity;
}
protected function loadLinkMultipleFields($entity)
protected function loadLinkMultipleFields(Entity $entity)
{
$fieldDefs = $this->getMetadata()->get('entityDefs.' . $this->entityName . '.fields', array());
$fieldDefs = $this->getMetadata()->get('entityDefs.' . $entity->getEntityName() . '.fields', array());
foreach ($fieldDefs as $field => $defs) {
if ($defs['type'] == 'linkMultiple') {
$entity->loadLinkMultipleField($field);
@@ -80,9 +80,9 @@ class Record extends \Espo\Core\Services\Base
}
}
protected function loadParentNameFields($entity)
protected function loadParentNameFields(Entity $entity)
{
$fieldDefs = $this->getMetadata()->get('entityDefs.' . $this->entityName . '.fields', array());
$fieldDefs = $this->getMetadata()->get('entityDefs.' . $entity->getEntityName() . '.fields', array());
foreach ($fieldDefs as $field => $defs) {
if ($defs['type'] == 'linkParent') {
$id = $entity->get($field . 'Id');
@@ -159,6 +159,10 @@ class Record extends \Espo\Core\Services\Base
{
$selectParams = $this->getSelectManager($this->entityName)->getSelectParams($params, true);
$collection = $this->getRepository()->find($selectParams);
foreach ($collection as $entity) {
$this->loadParentNameFields($entity);
}
return array(
'total' => $this->getRepository()->count($selectParams),
@@ -181,6 +185,10 @@ class Record extends \Espo\Core\Services\Base
$selectParams = $this->getSelectManager($foreignEntityName)->getSelectParams($params, true);
$collection = $this->getRepository()->findRelated($entity, $link, $selectParams);
foreach ($collection as $entity) {
$this->loadParentNameFields($entity);
}
// TODO
// $repository->via($entity, $link)->find($selectParams);