2015-06-14 149 views
0

我只是在我的模型中有该代码,因此,我得到了未定义的偏移量:0 我应该怎么做才能解决这个问题?我试过申报新的变量,但仍然没有改变。 谢谢未定义的偏移量:0 yii2

public function sendSMS() { 
    $model2 = SibuStudent::find()->innerJoin('Sibu_Payment', 'Sibu_Payment.virtual_id=Sibu_Student.virtual_id')->where('Sibu_Student.phone1 != "NULL" ' ) ->all(); 
    $model3 = SibuStudent::find()->innerJoin('Sibu_Payment', 'Sibu_Payment.virtual_id=Sibu_Student.virtual_id')->where('Sibu_Student.student_name != "NULL" ' ) ->all(); 
    $model4 = SibuPayment::find()->where('Sibu_Payment.total_payment != "NULL" ' )->all(); 
    $model5 = SibuPayment::find()->where('Sibu_Payment.sms_status != "NULL" ')->all(); 
    $count = sizeof($model2); 

    for($a=0; $a<5; $a++){ 
     if ($model5[$a]->sms_status == 0) { 

     $no = $model2[$a]->phone1; 
     $message = 'Kepada Bapak/Ibu dari '.$model3[$a]["student_name"].',tagihan (SPP,Asrama,Kantin,Adm) Rp.'.$model4[$a]["total_payment"].' dibayarkan sesuai tagihan. SMS ini tidak untuk dibalas, jika ada yang kurang jelas diberitahukan kepada siswa dan menanyakan kepada kami. Salam'; 

     if (strlen($message) < 160) 
     { 
      $outbox = new Outbox; 
      $outbox->CreatorID = 'Gammu'; 
      $outbox->TextDecoded = $message; 
      $outbox->DestinationNumber = $no; 
      $outbox->save(); 
     } 
    //batas for 
    } 
} 
+0

*未定义偏移*意味着有你的阵列与关键'中没有元素0'。尝试'var_dump'你的'$ model'变量,看起来至少有一个是空的 – Tony

+0

也正如我看到你比较'NULL'这是一个字符串,而不是'NULL',所以你的where子句应该是例如'Sibu_Payment.sms_status IS NOT NULL' – Tony

回答

2

你必须尝试这种方式来找到模型的数据为NOT NULL条款。为所有检查不为空的模型执行此操作。因为你的模型具有关键0没有元素在这种情况下,为什么它返回Undefined offset 0

SibuPayment::find()->where(['not', ['Sibu_Payment.total_payment' => null]])->all(); 

For example ['not', ['attribute' => null]] will result in the condition NOT (attribute IS NULL)

检查更多:http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detail

+0

谢谢,它适用于我。 –

+0

@Erjan Sarwono Sirait,很高兴它适合你,祝你好运。顺便说一句,你可以接受答案。 –

+0

更改为该代码后,我仍然有一些错误:未定义偏移量:0再次,我不知道要更改-_- $ model4 = SibuPayment :: find() - >其中(['不',[ 'Sibu_Payment.total_payment'=> null]]) - > all(); $ model5 = SibuPayment :: find() - > where(['not',['Sibu_Payment.sms_status'=> null]]) - > all(); –