dtmiRRor
dtmiRRor

Reputation: 599

Yii - Calling api request within CConsole

I have the following issue:

I have a local db with comments and I need to do some actions with some users I'm getting via an API request. Code is something like this:

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');                
    }
    ...
} 

When I execute the command I'm getting this error

exception 'CException' with message 'Property "CConsoleApplication.api" is not defined.' in /var/www/core/trunk/common/lib/Yii/base/CComponent.php:131

Any thoughts?

thanks in advance!

Upvotes: 0

Views: 86

Answers (2)

dtmiRRor
dtmiRRor

Reputation: 599

Thank you for your reply.

Got it fixed by adding the class into console/config/main.php

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

Upvotes: 2

crafter
crafter

Reputation: 6296

You will have to rethink the design of the application.

From your example, you might want to use Curl, although I think this might be overkill/

To run an action in a controller, you can use something like

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

Look here for additional information.

Upvotes: 0

Related Questions