我刚刚创建了一个标签行为来管理输入文本字段中的标签(所有关键字都用逗号分隔)。为此,我将输入命名为“tag_string”。所以我需要使用getter来处理字符串。我不明白如何直接在行为中实现 _getTagString() 方法。
如果我在每个使用我的行为的实体文件中使用我的 getter (getTagString),我的所有代码都可以正常工作。所以为了避免在每个文件中写相同的getter,我想把它放在我的行为文件中。但它不起作用。
这是我的方法:
public function _getTagString() {
if (isset($this->_properties['tag_string'])) {
return $this->_properties['tag_string'];
}
if (empty($entity->tags)) {
return '';
}
$tags = new Collection($entity->tags);
$str = $tags->reduce(function ($string, $tag) {
return $string . $tag->name . ', ';
}, '');
return trim($str, ', ');
}
谢谢你的帮助