2017-10-01 2 views
0

Ich habe eine Form wie folgt aus:So erstellen Sie eine Formularsuche auf dynamische Weise Yii2?

<?php $form = ActiveForm::begin([ 
    'layout' => 'horizontal' 
]); ?> 

<?= $form->field($model, 'tanggal_cek')->widget(DatePicker::className(), [ 
    'options' => [ 
     'class' => 'form-control' 
    ] 
]) ?> 

<?= $form->field($model, 'lokasi')->textInput(['maxlength' => true]) ?> 

<?= $form->field($model, 'created_by')->widget(Select2::className(), [ 
    'data' => $mapDataUser, 
    'options' => [ 
     'placeholder' => 'Choose .. ' 
    ] 
]) ?> 

Jetzt habe ich das Ergebnis zu manipulieren, die von dieser Form kam Daten in der Datenbank zu finden. Bis jetzt habe ich wie folgt erstellt:

if ($model->load($request->post())) { 
    $tanggalCek = $model->tanggal_cek ? Yii::$app->formatter->asDate($model->tanggal_cek, "php:Y-m-d") : ""; 
    $lokasi = $model->lokasi; 
    $created_by = $model->created_by; 

    $model = StockTakingTli::find() 
      ->where(['tanggal_cek' => $tanggalCek]) 
      ->andWhere(['LIKE', 'lokasi', $lokasi]) 
      ->andWhere(['created_by' => $created_by]) 
      ->all(); 

Sie wissen, ist die AR in Folge arbeiten. Meine Frage ist, ist es möglich, AR dynamisch zu finden? Weil, manchmal tanggal_cek ist Null, und lokasi ist eingestellt, umgekehrt, und am ... und am ..

Bitte beraten.

Antwort

0

Verwendung filterWhere(), ignoriert automatisch leere Werte:

$query->filterWhere([ 
    'username' => $username, 
    'email' => $email, 
]); 
Verwandte Themen