我想从CakePHP中的.ctp文件调用控制器文件的操作。是否可以?是的,比如何?请帮忙。例如,我在控制器中采取了措施。 users_controller.php

<?php
class UsersController extends AppController {

    function get_category() {
        ....
    }

}
?>

我想从 /question/index.ctp文件调用它。

有帮助吗?

解决方案

正确的方法是:

$this->requestAction(array('controller' => 'users', 'action' => 'get_category'));

创建URL the CakePHP way 将提高性能(不必使用路由器)。当您不在索引页面中时,同时也将始终工作,例如:“用户/get_category”可能会造成一些麻烦。

它仅在情况不同时才应在元素中(特别是缓存)中使用 - 对什么 Travis Leleu 在他的评论中写道。

其他提示

应该注意的是,您不应依靠请求作为一种普遍做法。 RequestAction是一个极其征税的电话,只有在您无法以任何其他方式组织代码的情况下才能使用。

理想情况下,您会将所需的数据从控制器操作发送到视图,而不是将其拨回控制器。

function my_action() {
   ...
   $this->set('category', $this->getCategory());
}

您可以称其为$ this-> requestAction('Controller'=>'用户','action'=>'get_category')

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top