好的,所以我知道小胡子模板没有逻辑,但我该如何实现呢:
<?php
if ($a || $b) {
echo $c, $d, $e;
}
?>
...使用胡子模板语法?我能想出的最好的是:
{{#a}}
{{c}}{{d}}{{e}}
{{/a}}
{{^#a}}
{{#b}}
{{c}}{{d}}{{e}}
{{/b}}
{{/a}}
...这显然是可怕的,需要我复制'if'中的任何内容。
有什么想法吗?
答案 0 :(得分:8)
胡子明确禁止这样的事情。这是逻辑,你试图将它放在模板中:)
适当的方法是将逻辑移动到ViewModel或View对象:
<?php
class MyView {
public $a;
public $b;
public function aOrB() {
return $this->a || $this->b;
}
}
但如果是我,我会将该功能命名为hasFoo
或showBar
,因此它具有一定的语义含义。
因为你正在处理“我应该展示这个块吗?”您的View或ViewModel中的逻辑,您将返回模板中的正常部分:
{{#aOrB}}
{{c}}{{d}}{{e}}
{{/aOrB}}
答案 1 :(得分:0)
对于记录,这是胡子的唯一方法。至于现在(我相信胡子5)没有更好的解决方案。