Yii - 在控制台中调用 api 请求

Yii - Calling api request within CConsole

我有以下问题:

我有一个带有评论的本地数据库,我需要对通过 API 请求获得的一些用户执行一些操作。 代码是这样的:

class RunCronCommand extends CConsoleCommand {

public function actionIndex() {
    ...
    $comments = Comment::model()->findAll('status = :status', array(':status' => Comment::ACTIVE));

    foreach ($comments as $comment) {
        $profile = Yii::app()->api->get('/users/'. $comment->user_id . '/getProfile');                
    }
    ...
} 

当我执行命令时出现此错误

异常 'CException',消息 'Property "CConsoleApplication.api" is not defined.' 在 /var/www/core/trunk/common/lib/Yii/base/CComponent。php:131

有什么想法吗?

提前致谢!

您将不得不重新考虑应用程序的设计。

从你的例子来看,你可能想使用 Curl,虽然我认为这可能有点矫枉过正/

要运行控制器中的一个动作,你可以使用类似

的东西
   Yii::import('application.modules.moduleName.controllers.ControllerName');
   $controller_instance = new ControllerName("Default"); 
   $controller_instance->actionIndex();

查看此处了解更多信息。

感谢您的回复。

通过将 class 添加到 console/config/main 来修复它。php

'components' => array(
    'api' => array(
        'class' => 'common.extensions.Api.Api'
),