0

我有以下控制器:

App::import('Controller', 'Users');
class EmployeesController extends  AppController
{

}

现在另一个 StackOverflow 问题说要执行以下操作:

<?php
//Import controller
App::import('Controller', 'Posts');

class CommentsController extends AppController {
    //Instantiation
    $Posts = new PostsController;
    //Load model, components...
    $Posts->constructClasses();

    public function index($passArray = array(1,2,3)) {
        //Call a method from PostsController with parameter
        $Posts->doSomething($passArray);
    }
}
?>

但是,如果我尝试将其复制到我的代码中,我的代码如下所示:

App::import('Controller', 'Users');

class EmployeesController extends  AppController {

    public $name = 'Employee';
    $Users = new UsersController;

我得到一个语法错误,如果我仍然运行它,我会得到一个致命错误。

所以我的问题是如何从另一个控制器调用函数?

4

1 回答 1

3

你没有。

从您链接到的问题中阅读已接受的答案,这是正确的。而且,Mark Story(CakePHP 核心贡献者)在评论中支持它。

我不确切知道您的要求是什么,但您几乎可以肯定希望将逻辑移动到您的模型中。在 MVC 中,始终认为“胖模型,瘦控制器”。

如果您有更多问题,请在评论中提问或更新您的问题,我会用更多信息更新我的答案。

于 2013-08-09T09:40:42.873 回答