首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flow3 PersonName回滚

Flow3 PersonName回滚
EN

Stack Overflow用户
提问于 2012-01-06 22:58:16
回答 1查看 232关注 0票数 0

我在Flow3的安全帐户/参与方模块中遇到问题。

我曾尝试将一个人的名字和姓氏更改为Party:

代码语言:javascript
复制
$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正在执行回滚。

我找到了一种解决方法:

代码语言:javascript
复制
$personName = new \TYPO3\Party\Domain\Model\PersonName('', $firstName,'', $lastName);
$person->setName($personName);

这是正确的,但是为什么呢??

EN

回答 1

Stack Overflow用户

发布于 2012-06-11 17:50:10

这是因为Person::getName()返回的是PersonName的副本,而不是引用。这意味着如果在外部($name)更改PersonName,则不会在$person的内部($this->name)更新它。

这将是一种解决方案:

代码语言:javascript
复制
$person = $account->getParty();
$name = $person->getName();
$name->setFirstName($firstName);
$name->setLastName($lastName);
$person->setName($name);
$this->accountRepository->update($account);
$this->partyRepository->update($person);

只需再次设置PersonName即可。

这个anwser也很不错:https://stackoverflow.com/a/746322/782920

PHP:通过引用返回:http://php.net/manual/en/language.references.return.php

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8759747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档