我正在尝试实现一个 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;
}
对不起,我的英语不好。
并提前致谢。
那是因为您在 if 条件中分配值,而不是检查它们。
if ($tipo_fatura->index = 2) {
注意=
这里的操作符,它应该是==
。其他条件也一样。
赋值是一个有效的操作,PHP 不会抛出任何错误或通知。因此,一个好的经验法则是始终在条件中使用左侧的值部分,如下所示:
if ( 2 == $test ) {
// do something
}
在这种情况下即使你=
在这里错误地添加了一个PHP 也会抛出一个PHP Parse error
因为2 = $test
不会是有效的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句