Yii - php警告:从空值创建默认对象

时间:2015-04-29 09:14:58

标签: php yii

我是PHP新手,YII框架并不严格。 我有一些来自谷歌货币退出率的代码。

for ($i = 1; $i <= 3; $i++)
     {
         $model = WidgetCurrencyElement::model()->findByPk($i);

         $buy = 100.25*$er[$i];
         $buy = (int)$buy;
         $buy /= 100;

         $sale = $er[$i]/0.010025;
         $sale = (int)$sale;
         $sale /= 100;

         $model->buy = $buy;
         $model->sale = $sale;

         if(!$model->save()){
             print_r($model->getErrors());
             die("not saved!");
         }
     }
     $this->render('currency', array('er1' => $er[1], 'er2'=>$er[2], 'er3'=>$er[3]));
}

它告诉我

&#34; PHP警告从空值&#34;创建默认对象。我不明白为什么。 这种错误的原因是什么? &#39; $ model&#39;并不是一成不变的。

1 个答案:

答案 0 :(得分:1)

正如Arkoak所说,数据库中可能不存在一个或多个id。因此,在找到对象后确保对象存在更好,然后尝试为其赋值:

for ($i = 1; $i <= 3; $i++)
 {
     $model = WidgetCurrencyElement::model()->findByPk($i);
     if($model != null)
     {
         $buy = 100.25*$er[$i];
         $buy = (int)$buy;
         $buy /= 100;

         $sale = $er[$i]/0.010025;
         $sale = (int)$sale;
         $sale /= 100;

         $model->buy = $buy;
         $model->sale = $sale;

         if(!$model->save()){
             print_r($model->getErrors());
             die("not saved!");
         }
     }

 }