0

这是一个奇怪的问题。我正在尝试在 Twig 和一些 ViewModel 对象之间实现 1:1 的关系,以便 Twig 知道它的上下文并假设变量是对象上的方法。

例如,我有一个 Twig 模板和一个 ViewModel_Product。我可以这样做...

$template->render(array('product', $product));

...在模板中...

<p>{{ product.name }}</p>

然而,因为唯一会传递给模板的是模型,所以让用户为每个变量添加前缀似乎毫无意义。更好的用法是:

$template->render(array('viewModel', $product));

...和...

<p>{{ name }}</p>

我怎样才能做到这一点?

4

1 回答 1

0

我不相信这是可能的,因为 twig 会跟踪每个模板中的其他全局变量,那么它如何知道变量 {{ name }} 是您的视图的一部分还是其他一些全局变量?正如上面提到的,拥有变量前缀有助于为您的视图命名,从而更容易阅读。

不要做一个懒惰的程序员。

于 2012-11-27T13:29:45.910 回答