未定义的偏移量:yii2中的0

时间:2015-06-14 16:25:59

标签: php yii2 gammu

我只是在我的模型中有代码,因此,我得到了Undefined offset:0 我该怎么做才能解决这个问题?我已经尝试过声明新变量,但仍然没有变化。 谢谢

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
    }
}

1 个答案:

答案 0 :(得分:2)

您必须尝试这种方式从MODEL NOT NULL子句中查找数据。对所有检查非空条件的模型执行此操作。因为在这种情况下,您的模型没有包含键0的元素,因此它返回Undefined offset 0

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

例如['not',['attribute'=&gt; null]]将导致   condition NOT(属性为IS NULL)

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