在 Craft 3 中从模板传递到自定义模板标签时如何循环标签字段?
How do you loop over a tag field when passing from template to a custom template tag in Craft 3?
假设我有一个像这样的 Twig 模板:
{{ craft.myPlugin.bar(entry.specialTags) }}
如何在我的自定义模板标签中有效地执行以下操作?
public function bar($tags)
{
if ($tags->contains('blah')) { // pseudo-code!
// return something...
}
}
您似乎可以像这样遍历标记字段的每个标记:
for ($tagField->all() as $tag) {
if ($tag->title == "blah") {
// return something...
}
}
或者使用类似下面的方法转换成标签标题列表:
$tagTitles = array_map(
function($tag) { return $tag->title; },
$tagField->all()
);
假设我有一个像这样的 Twig 模板:
{{ craft.myPlugin.bar(entry.specialTags) }}
如何在我的自定义模板标签中有效地执行以下操作?
public function bar($tags)
{
if ($tags->contains('blah')) { // pseudo-code!
// return something...
}
}
您似乎可以像这样遍历标记字段的每个标记:
for ($tagField->all() as $tag) {
if ($tag->title == "blah") {
// return something...
}
}
或者使用类似下面的方法转换成标签标题列表:
$tagTitles = array_map(
function($tag) { return $tag->title; },
$tagField->all()
);