我在 Controller 类中创建了一个函数,需要在模板内部使用(因为模板渲染了很多次(每个模板都是网站上的一篇文章,它们都会以不同的值显示在新闻源中) .有没有办法在smarty变量上调用它? 假设您在 Controller 中创建了一个函数:
public function foo($bar){
$bar++;
return $bar;
}
然后在模板中:
{$smarbar|foo}
或类似的东西
最佳答案
您可以注册一个修饰符来调用类的给定方法:
class SomeClass {
public function someMethod($value)
{
// return modified value
}
}
$smarty = new Smarty();
$smarty->registerPlugin('modifier', 'myModifier', array('SomeClass', 'someMethod'));
// or
$instance = new SomeClass();
$smarty->registerPlugin('modifier', 'myModifier', array($instance, 'someMethod'));
现在您可以在模板中使用它了:
{$someVar|myModifier}
这是 registerPlugin文档。
关于php - Smarty:是否可以在模板中调用 PHP 函数(从 Controller 类)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25551384/