在YII的CConsoleCommand中无法设置setState和getState

时间:2013-12-03 02:49:53

标签: php yii

我写了CTestCommand extends CConsoleCommand
需要致电getStatesetStateCWebUser的{​​{1}}和CUserIdentity 我不知道它是使用CWebUser还是CUserIdentity
但是当我在控制台中运行./yiic test时。打印出来

PHP Fatal error:  Call to undefined function user()  

我的代码是

user()->getState('site_id')  

我在网络浏览器中运行时没关系。但它无法在命令中运行 我的配置文件是

return array(
        'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
        'name'=>'My Console Application',
        'import'=>array(
        'ext.*',
                'application.models.*',
                'application.components.*',
                'ext.mailer.*',
        ),

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

Yii控制台应用程序通常没有用户组件,或者 - 就此而言 - 配置了会话组件。虽然您可以在protected/config/console.php中配置用户,但我不确定您是否可以对会话执行相同的操作。毕竟,会话是一个需要cookie才能运行的网络。

答案 1 :(得分:0)

您是否依赖定义user()方法的全局函数文件?该文件是否包含在您的控制台配置中?