我刚刚创建了一个标记行为来管理输入文本字段中的标记(所有关键字都用逗号分隔)。为此,我将输入命名为“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, ', ');
}
感谢您的帮助
答案 0 :(得分:0)
经过多次搜索后,我没有找到任何可以直接在行为中实现访问者的内容。
我使用特质,它工作正常。