yii2 beforeSave with modal下拉列表

时间:2017-05-23 15:50:50

标签: yii2 before-save

我试图实现一个beforeSave函数,它从一个选定的模态下拉列表中相应地将值更改为正数或负数,但它始终相应地更改为第一个if:

这是模态代码:

<?= $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;
}

抱歉,我的英语不好。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

那是因为你在条件中分配值,而不是检查它们。

if ($tipo_fatura->index = 2) {

请注意=运算符,它应该是==。其他条件也是如此。

分配值是一个有效的操作,PHP不会抛出任何错误或通知。因此,一个好的经验法则是在条件中始终使用左侧的值部分,如下所示:

if ( 2 == $test ) {

    // do something
}

在这种情况下,即使你错误地在这里添加一个=,PHP也会抛出PHP Parse error,因为2 = $test将无效。