如何从ctp访问app_controller中定义的函数

时间:2011-09-21 12:12:00

标签: cakephp

我在app_controller.php中有函数。函数如:

    function globalSum($Var1,$Var2)
    {
        $Var3 = $Var1 + $Var2;
        return $Var3;
    }

现在我想从任何CTP文件访问此函数以获取sum之后的值。当我调用此函数时,将从ctp文件发送arments。 所以,任何人都可以告诉我如何用ctp文件中的参数调用这个函数??

提前致谢..

1 个答案:

答案 0 :(得分:4)

你尝试这样做的方式可能不是最好的,因为它正在对抗CakePHP使用的MVC架构。

在MVC中,ctp文件是您的视图,并且应该尽可能地充当模板,视图中需要的任何值都应该从控制器传递给它。

您的问题有很多简单的解决方案。

一个只是在视图中添加:

index.ctp

<?php
echo $var1 + $var2
?>

对于这样一个简单的操作,为什么还要单独使用一个函数?

如果您的函数更复杂,可以将它放在AppController中,然后在操作所属的控制器中设置视图变量。例如:

app_controller.php

<?php
function globalSum($Var1,$Var2) {
    $Var3 = $Var1 + $Var2;
    return $Var3;
}
?>

posts_controller.php

<?php
function index() {
    $this->set('var3', $this->globalSum($var1,$var2));
}
?>

index.ctp

<?php
echo $var3;
?>

希望有所帮助。