typo3 - TYPO3 extbase 域模型中的虚拟属性?
问题描述
我正在尝试在 TYPO3 9.5.x 中使用没有数据库字段表示的虚拟域模型属性,但我无法让它工作。
我的模型看起来像这样
class Project extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
/**
* participants
*
* @var string
*/
protected $participants;
...
/**
* Returns the participants
*
* @return string $participants
*/
public function getParticipants()
{
$this->participants = "foo";
return $this->participants;
}
}
我在调试模型时确实看到了该属性,但它总是null
好像它甚至无法识别 getter 方法getParticipants()
。
知道我可能做错了什么吗?
已经在和 TCA 中添加了一个数据库字段ext_tables.sql
,但似乎没有什么不同。
解决方案
该属性是null
因为这是 Extbase 调试器检查它时的状态。请注意,Extbase 调试器对 getter 一无所知,也不会调用它们。
所以如果你想初始化你的属性,你必须在声明时这样做:
protected $participants = 'foo';
推荐阅读
- python - 网站中自然问题的更系统的代码
- vue.js - 在 vue-recaptcha 上绕过 Recaptcha
- django - 如何在 django shell 中以现有用户身份登录
- python - 如何使用 Tweepy 和 Python 遍历用户列表?
- angular - Angular MSAL Guard:已调用 RenewIdToken
- html - 缩放时定位(.5)
- c# - 你如何使用 `BeApproximately` 的值在循环的每次迭代中都会发生变化?
- python - 我们是否评估 cross_val_score 的准确性,然后评估测试数据的准确性?
- reactjs - Cannot connect component inside React Route to redux store
- javascript - 如何正确设置firebase身份验证?