在视图中访问Controller返回值

时间:2011-04-29 22:39:21

标签: php cakephp cakephp-1.3

在我的控制器中我有这个方法

<?php

function test($value){              

    $products = $this->Model->getProducts($id);

    for($i=0; $i < count($products); $i++){ 
        foreach ($products[$i] as $key => $value) {
            return $value;
        }
    }
}
?>  

如何从View中访问它?

1 个答案:

答案 0 :(得分:3)

如果在控制器中生成变量,并且想要在视图中访问它,则可以使用

$this->set('value', $value);

这样您也可以在相关视图中使用$ value。

如果您确实想要从视图中访问某个函数,则不希望将该函数放在控制器中,而是放在帮助器中。 (根据经验,你可以将你想要的功能放在助手的视图中,以及你希望组件中的控制器可以访问的功能。)如果你不喜欢在Cake Cookbook等中阅读更多关于助手的信息,那么可能值得一读。我不知道从哪里开始!

编辑:要获得循环的所有相关值,您可以尝试类似:

$products = $this->Model->getProducts($id);
$results = array();

for($i=0; $i < count($products); $i++){ 
    foreach ($products[$i] as $key => $value) {
        $results[] = $value;
    }
 }

$this->set(compact('results'));