我使用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);
}
任何帮助将不胜感激!
答案 0 :(得分:0)
您显式检查null(!== null),因此如果模型是一个空对象,则此检查不会捕获它。
供调试使用
print_r($model, true)
或
var_export($model, true)
您正在使用的当前调用将信息刷新到默认输出,并且在控制台调用时非常有用。将return参数设置为true,打印出信息。