在视图中访问控制器返回值

发布于 2024-11-04 08:15:20 字数 326 浏览 0 评论 0原文

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

<?php

function test($value){              

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

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

如何从视图内部访问它?

In my controller I have this method

<?php

function test($value){              

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

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

How can I access this from inside a View?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没有心的人 2024-11-11 08:15:20

如果你在控制器中生成一个变量,并想在视图中访问它,你可以使用

$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'));

If you generate a variable in the controller, and want to access it in the view, you can use

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

This will allow you to use $value in the relevant view as well.

If you actually want to access a function from the view, you don't want want to put that function in the controller, but in a helper. (As a rule of thumb, you put functions you want to be accessible to your views in helpers, and functions you want to accessible to your controller in components.) Might be worth reading up more on helpers in the Cake Cookbook etc if you don't know where to start!

EDIT: For getting all the relevant values of your loop, you could try something like:

$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'));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文