mirror of
https://github.com/espocrm/espocrm.git
synced 2026-06-28 23:16:03 +00:00
link-multiple save relate option, ref
This commit is contained in:
@@ -366,7 +366,8 @@ class LdapLogin implements Login
|
||||
$data[$fieldName] = $fieldValue;
|
||||
}
|
||||
|
||||
$user = $this->entityManager->getNewEntity('User');
|
||||
/** @var User $user */
|
||||
$user = $this->entityManager->getNewEntity(User::ENTITY_TYPE);
|
||||
|
||||
$user->set($data);
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
namespace Espo\Core\FieldProcessing\Relation;
|
||||
|
||||
use Espo\Core\ORM\Entity as CoreEntity;
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
use Espo\Core\FieldProcessing\Saver\Params;
|
||||
use Espo\Core\ORM\EntityManager;
|
||||
@@ -42,17 +41,18 @@ use Espo\Core\ORM\Repository\Option\SaveOption;
|
||||
*/
|
||||
class LinkMultipleSaver
|
||||
{
|
||||
private const RELATE_OPTION = 'linkMultiple';
|
||||
|
||||
public function __construct(private EntityManager $entityManager)
|
||||
{}
|
||||
|
||||
public function process(Entity $entity, string $name, Params $params): void
|
||||
public function process(CoreEntity $entity, string $name, Params $params): void
|
||||
{
|
||||
$idListAttribute = $name . 'Ids';
|
||||
$columnsAttribute = $name . 'Columns';
|
||||
|
||||
if (
|
||||
!$entity->isNew() &&
|
||||
$entity instanceof CoreEntity &&
|
||||
!$entity->hasLinkMultipleField($name)
|
||||
) {
|
||||
$entity->clear($idListAttribute);
|
||||
@@ -216,12 +216,14 @@ class LinkMultipleSaver
|
||||
|
||||
$repository->getRelation($entity, $name)->relateById($id, $data, [
|
||||
SaveOption::SKIP_HOOKS => $skipHooks,
|
||||
self::RELATE_OPTION => $entity->hasLinkMultipleField($name),
|
||||
]);
|
||||
}
|
||||
|
||||
foreach ($toRemoveIdList as $id) {
|
||||
$repository->getRelation($entity, $name)->unrelateById($id, [
|
||||
SaveOption::SKIP_HOOKS => $skipHooks,
|
||||
self::RELATE_OPTION => $entity->hasLinkMultipleField($name),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
namespace Espo\Core\FieldProcessing\Relation;
|
||||
|
||||
use Espo\Core\ORM\Defs\AttributeParam;
|
||||
use Espo\Core\ORM\Entity as CoreEntity;
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
use Espo\Core\FieldProcessing\Saver as SaverInterface;
|
||||
@@ -85,6 +86,10 @@ class Saver implements SaverInterface
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$entity instanceof CoreEntity) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->linkMultipleSaver->process($entity, $name, $params);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user