yii2 перед сохранением с модальным выпадающим списком

Я пытаюсь реализовать функцию beforeSave, которая из выбранного модального раскрывающегося списка соответственно изменяет значение на положительное или отрицательное число, но оно всегда изменяется соответственно первому, если:

это модальный код:

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

и это код модели:

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

Извините, за мой плохой английский.

И спасибо заранее.


person Motorui    schedule 23.05.2017    source источник


Ответы (1)


Это потому, что вы присваиваете значение внутри условия if, а не проверяете их.

if ($tipo_fatura->index = 2) {

Обратите внимание на оператор =, он должен быть ==. То же самое касается и других других условий.

Присвоение значения является допустимой операцией, и PHP не выдаст никаких ошибок и не уведомит об этом. Таким образом, хорошим эмпирическим правилом было бы всегда использовать часть значения слева в условии, например:

if ( 2 == $test ) {

    // do something
}

В этом случае, даже если вы по ошибке добавите здесь один =, PHP выдаст PHP Parse error, потому что 2 = $test не будет допустимой операцией.

person leninhasda    schedule 24.05.2017