Доступ к объектам по Multiple ссылке

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dkvartal
    Junior Member
    • Jan 2020
    • 16

    Доступ к объектам по Multiple ссылке

    Здравствуйте. Есть сущности Transaction и Service. Между ними связь многие-к-многим. В Transaction ссылка называется services. С помощью формулы пытаюсь получить значение поля у одного из объектов массива services, но ничего не работает.
    Code:
    //пытаюсь получить первый элемент из массива
    $service = array\at(services, 0);
    //и присвоить имя из имени объекта по ссылке
    name = $service.name;
    Вместо services так же пробовал servicesNames как в документации
    Last edited by dkvartal; 02-24-2021, 10:13 PM.
  • VikinGDM
    Member
    • Feb 2019
    • 92

    #2
    Немного не так.
    Code:
    $name = record\attribute('services',  array\at(services, $i), 'name');
    где $i - просто индекс по перебору массива, получается:
    Code:
    $i = 0;
    while($i < array\length(services), 'че-нить делаем'; 'и еще'; $i = $i + 1;);

    Comment

    • dkvartal
      Junior Member
      • Jan 2020
      • 16

      #3
      Originally posted by VikinGDM
      Немного не так.
      Code:
      $name = record\attribute('services', array\at(services, $i), 'name');
      где $i - просто индекс по перебору массива, получается:
      Code:
      $i = 0;
      while($i < array\length(services), 'че-нить делаем'; 'и еще'; $i = $i + 1;);
      Спасибо. Может подскажете ещё с такой задачей. Есть объект сущности Transaction у которого есть поле services (multiple-link) к объекту сущности Service соответственно. Ещё у Transaction есть поле payer, которое является простой ссылкой к Account. У Service тоже есть поле firm, которое является простой ссылкой к Account. Нужно взять у первого Service из Transaction.services ссылку на Account (Service.firm) и присвоить её в Transaction.payer. Пытаюсь делать так:
      Code:
      $serviceId = array\at(servicesIds, 0);
      $payerLink = record\attribute('Service', $serviceId, 'firm');
      payer = $payerLink;
      И ничего не происходит. Раньше для таких задач с multiple-link я использовал функцию entity\addLinkMultipleId(), но я так понимаю для простых ссылок оно не подходит.

      Comment

      • dkvartal
        Junior Member
        • Jan 2020
        • 16

        #4
        Нашёл такое решение:
        Code:
        $serviceId = array\at(servicesIds, 0);
        $payerLinkId = record\attribute('Service', $serviceId, 'firmId');
        payerId = $payerLinkId;
        Вроде бы работает как надо. Только страницу приходится перезагружать, чтоб имя нормально отобразилось. До этого отображается как [object Object]

        Comment

        Working...