Flow3 PersonName Откат - PullRequest
       47

Flow3 PersonName Откат

0 голосов
/ 06 января 2012

У меня проблема в модуле «Учетная запись / участник» в Flow3.

Я пытался изменить имя и фамилию лица как участника:

$person = $account->getParty();
$name = $person->getName();
$name->setFirstName($firstName);
$name->setLastName($lastName);
$this->accountRepository->update($account);
$this->partyRepository->update($person);

$учетная запись является действительным \TYPO3\FLOW3\Security\Account объектом.

При использовании этого кода и изменении $ firstName и $ lastname, flow3 выполняет откат.

Я нашел обходной путь:

$personName = new \TYPO3\Party\Domain\Model\PersonName('', $firstName,'', $lastName);
$person->setName($personName);

Это работает правильно, но почему ??

1 Ответ

1 голос
/ 11 июня 2012

Это потому, что Person::getName() возвращает копию PersonName, а не ссылку. Это означает, что PersonName не обновляется внутри ($this->name) $person, если вы измените его снаружи ($name).

Это было бы одно решение:

$person = $account->getParty();
$name = $person->getName();
$name->setFirstName($firstName);
$name->setLastName($lastName);
$person->setName($name);
$this->accountRepository->update($account);
$this->partyRepository->update($person);

Просто снова установите PersonName.

Этот ответ также хорош: https://stackoverflow.com/a/746322/782920

PHP: возврат по ссылке: http://php.net/manual/en/language.references.return.php

...