0

私は自分のモデルにそのコードを持っているだけで、その結果、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
    }
}
4

1 に答える 1

2

NOT NULL句のモデルからデータを見つけるには、この方法を試す必要があります。非 null 条件をチェックするすべてのモデルに対して実行します。この場合、モデルにはキー0を持つ要素がないため、それが返される理由Undefined offset 0

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

たとえば、 ['not', ['attribute' => null]] は条件 NOT (attribute IS NULL) になります。

詳細を確認してください: http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detail

于 2015-06-14T16:42:26.833 に答える