1

有什么方法可以在 CakePHP(2.*) 中访问 mvc 之外的当前控制器或请求对象?

基本上我需要访问为 CakePHP 设计的库中的请求对象,但应该尽可能地独立运行 - 换句话说,我想避免控制器本身中任何不必要的特定于 lib 的初始化代码,以保持.

我为此目的编写了一个组件,但并非所有对 lib 的调用都直接来自控制器。我还想避免将 $controller 或 $request 变量传递到 lib 内部以外的任何其他地方。

我从来没有过多地研究过 CakePHP 类的加载,但我记得在 CakePHP 1.3 是新版本时关于 ClassRegistry 的一些事情。在控制器操作中测试 ClassRegistry 后不久,我发现它是空的(使用 ClassRegistry::keys() 和 pr()'ing 直接从类确定

那么,是否有任何友好的方式来获取请求对象,或者我应该求助于更丑陋的方法?

4

2 回答 2

5

Router::getRequest()应该给你 CakeRequest 实例。

于 2012-08-14T11:13:24.837 回答
0

以下代码示例对您有帮助吗?

//in Socials Controller importing SocialUsers controller
function __checkSocialUser($title, $user_id){
    App::import('Controller', 'SocialUsers');
        $SocialUsers = new SocialUsersController;
        $SocialUsers->constructClasses();
        $ourUserId = $this->Auth->user('id');
        $SocialUsers->data = array('SocialUser' => array('title' => $title, 'identifier' => $user_id, 'user_id' => $ourUserId));
        $result = $SocialUsers->checkUser($title, $user_id);....
于 2012-08-01T13:04:20.720 回答