Flow3 PersonName回滚

时间:2012-01-06 14:58:16

标签: php typo3-flow

我在Flow3的安全帐户/派对模块中遇到问题。

我试图将一个人的名字和姓氏改为派对:

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

$ account是有效的\TYPO3\FLOW3\Security\Account对象。

使用此代码并更改$ firstName和$ lastname时,flow3正在进行回滚。

我找到了解决方法:

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

这是正常的,但为什么??

1 个答案:

答案 0 :(得分:1)

这是因为Person::getName()会返回PersonName的副本,而不是引用。这意味着如果您在外部($this->name)更改了PersonName,则$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