我有問題的Yii + CDbCriteria/ActiveRecord的當Yii的控制檯命令Yii的ActiveRecord的和控制檯命令不工作
Yii的版本1.1.13
從控制器調用時下面的代碼工作相結合。因爲HTTP會話是可訪問的。
$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>';
然而,通過Yii控制檯命令訪問時,我收到以下錯誤和頂部2 STRACK跡線:
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()
我可以理解,本次會議不提供給控制檯命令,但爲什麼它甚至訪問會話? Yii框架並不好。是[class] :: mode() - > find($ criteria)我應該如何使用ActiveRecord來擴充對象?似乎很相稱的例子,我在網上找到
任何幫助是極大的讚賞
這是命令類的例子
<?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;
}
}
你確定這是你的consoleCommand類中的所有代碼嗎? – 2014-12-02 23:34:16
我沒有列出任何代碼,我只是列出了一個片斷,我知道它在$ contact = Contact :: model() - > find($ criteria)上崩潰;行 – wired00 2014-12-02 23:44:03
@AliMasudianPour我已經用示例命令類修正了這個問題。 – wired00 2014-12-02 23:48:13