doulao3905 2014-12-02 23:15
浏览 79
已采纳

Yii ActiveRecord和控制台命令无法正常工作

I have a problem with Yii + CDbCriteria / ActiveRecord when combined with Yii Console Commands

Yii version 1.1.13

The below code works when called from a controller. Because the HTTP Session is accessable.

$criteria=new CDbCriteria;
$criteria->select='first_name';
$criteria->condition='id=:contactid';
$criteria->params=array(':contactid'=>4);
$contact=Contact::model()->find($criteria); // <-- exception occurs here... strange
echo '<pre>';
var_dump($contact->first_name);
echo '</pre>';

However, when accessing via Yii Console Command I receive the following error and top 2 strack trace lines:

    exception 'CException' with message 'CConsoleApplication and its behaviors do not have a method or closure named "getSessiorks/yii/1.1.13/base/CComponent.php:265
Stack trace:
#0 /home/stm/stm_frameworks/yii/1.1.13/web/auth/CWebUser.php(193): CComponent->__call('getSession', Array)
#1 /home/stm/stm_frameworks/yii/1.1.13/web/auth/CWebUser.php(193): CConsoleApplication->getSession()

I can understand that the session is not available to console commands, but why is it even accessing the session? I'm not great with Yii framework. Is [class]::mode()->find($criteria) how I should be inflating a object using ActiveRecord? Seems to match the examples I've found online

Any help is greatly appreciated

Here is an example of the command class

<?php

class FlahCommand extends CConsoleCommand
{
    var $id;

    public function actionIndex() {
        return 0; // not implemented
    }

    public function actionBlah($contactId=0) {
        $criteria=new CDbCriteria;
        $criteria->select='first_name';
        $criteria->condition='id=:contactid';
        $criteria->params=array(':contactid'=>$contactId);
        $contact=Contact::model()->find($criteria); // <-- exception occurs here... strange
        echo '<pre>';
        var_dump($contact->first_name);
        echo '</pre>';

        return 0;

    }

}
  • 写回答

2条回答 默认 最新

  • duancao2082 2014-12-03 22:21
    关注

    Ok I ended up figuring out that the client was including a model which i'd missed. Its solved now thanks for the insight people gave

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型