PHP致命错误:调用未定义的方法stdClass :: save() - Yii框架

时间:2014-02-06 22:03:44

标签: php yii

我使用Yii Framework,在我的代码中,我有:

$model=partidascapturainfo::model()->findByAttributes(array('capturainfoid'=>$idCaptura,'metricaid'=>$metricaId,'proyectoproductoid'=>$productoId));

if ($model!==null){
                    if($model->save()){
                        $response->status = "1";
                        $response->message= "La Informacion se subio correctamente con el  Id ".$idCaptura;
                        $this->logInFile("model->save() ok");
                    }else{

                        $response->status = "0";
                        $response->message= "La Informacion no fue enviada intentelo mas tarde";
                        $this->logInFile("model->save() not posible-model:".print_r($model->getErrors()));
                    }
                }else{
                    $this->logInFile("model is null");
                    $this->logInFile(print_r($model->getErrors()));

                }

我是一个java程序员,所以,我对PHP并不熟悉,但是,我可以看到$ model不是null。 但是,我找不到显示$ model内容的方法:

print_r($model); // display 1   
get_object_vars($model); // display Array
var_dump($model); // display nothing

有必要说我将来自Android的PhoneGap应用程序的请求发送到php脚本。 我拍摄并上传照片,然后发送请求。所以我不能在firebug中调试。

我找到的唯一方法是写一个带数据的日志文件($ this-> logInFile())

我不知道如何解决这个问题......在其他主题中,他们说异常发生是因为$ model为null,但我的不是......

以同样的方式,能够记录由以下执行的sql查询将是一个很大的帮助:

model()->findByAttributes(array('capturainfoid'=>$idCaptura,'metricaid'=>$metricaId,'proyectoproductoid'=>$productoId));

登录文件功能:

function logInFile($msg){
    $path = "/logs/logfile.log";
    $f = @fopen(getcwd().$path, 'a+');
    //$req = json_encode($_REQUEST);
    //@fputs($f, date("Y/m/d g:i:s").$req."\n");
    @fputs($f, $msg."\n");
    @fclose($f);
}

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您显式检查null(!== null),因此如果模型是一个空对象,则此检查不会捕获它。

供调试使用

print_r($model, true) 

var_export($model, true)

您正在使用的当前调用将信息刷新到默认输出,并且在控制台调用时非常有用。将return参数设置为true,打印出信息。