从CTP文件调用控制器操作
题
我想从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')
不隶属于 StackOverflow