如何解决如何在十月 CMS 中添加 Twig 测试?
这在我的 registerMarkupTags 函数中运行良好。
'functions' => [
'isNumeric' => function($value) { return is_numeric($value); }
所以我可以写:
{% if isNumeric(result) %}
我想做一个测试,例如
{% if result is numeric %}
解决方法
您可以为树枝添加自定义扩展
来源:https://tutorialmeta.com/october-cms/october-cms-extend-custom-twig-markup
将以下代码添加到您的 plugin.php
文件
// other imports
use Twig\Extension\AbstractExtension as TwigExtension;
// our extension class
// you can declare here inside plugin.php file or in your `plugin\classes` file
// for simplicity we have declared it here
class MyTwigExtension extends TwigExtension {
public function getTests() {
return [
new \Twig\TwigTest('numeric',function ($value) {
return is_numeric($value);
})
];
}
}
class Plugin extends PluginBase {
public function boot() {
Event::listen('cms.page.beforeDisplay',function ($controller,$url,$page) {
$controller->getTwig()->addExtension(new MyTwigExtension);
}
);
}
// other code
}
现在来自您的标记
{% if 12 is numeric %}
yes numeric.
{% else %}
not a numeric.
{% endif %}
如有任何疑问,请评论。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。