2017-05-23 2 views
0

Ich versuche, eine before Funktion zu implementieren, dass von einem ausgewählten modal Dropdown dementsprechend Wert auf positive oder negative Zahl ändert sich, aber es ist immer entsprechend der ersten ändern, wenn:yii2 before mit modalen Dropdownlist

ist dies die modal Code:

<?= $form->field($model, 'tipo_fatura')->dropDownList([ 'Fatura' => 
'Fatura', 'Nota de Crédito' => 'Nota de Crédito', ], 
    ['prompt' => '']) ?> 

und das ist der Modellcode:

public function beforeSave($insert) 
{ 
if (!parent::beforeSave($insert)) { 
    return false; 
} 
    $tipo_fatura = $this->tipo_fatura; 
    if ($tipo_fatura->index = 2) { 
     $this->valor_fatura = 2;    
    } else if ($tipo_fatura = 'Fatura') { 
     $this->valor_fatura = 1; 

    } else { 

    } 

return true; 
} 

Sorry, über mein schlechtes Englisch.

Und danke im Voraus.

Antwort

0

Das ist, weil Sie Wert Wert innerhalb der Bedingung zuweisen, sie nicht überprüfend.

if ($tipo_fatura->index = 2) { 

Hinweis der = Betreiber hier sollte es == sein. Gleiches gilt auch für andere Bedingungen.

Wert zuweisen ist eine gültige Operation und PHP wird keinen Fehler oder Hinweis darüber werfen. Also eine gute Daumenregel wäre, immer den Wert Teil in einem Zustand auf der linken Seite zu benutzen, wie folgt aus:

if (2 == $test) { 

    // do something 
} 

In diesem Fall, auch wenn Sie versehentlich eine einzelne hinzufügen = hier PHP eine PHP Parse error weil 2 = $test werfen wird keine gültige Operation sein.

+0

Ich kann nicht glauben, dass ich so dumm war, D, Manny danke. – Motorui

Verwandte Themen