yii2 beforeSave 与模态下拉列表
yii2 beforeSave with modal dropdownlist
我正在尝试实现一个 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;
}
抱歉,我的英语不好。
提前致谢。
那是因为你在 if 条件中分配值,而不是检查它们。
if ($tipo_fatura->index = 2) {
注意这里的=
运算符,应该是==
。其他条件也一样。
赋值是一个有效的操作,PHP不会抛出任何错误或通知。因此,一个好的经验法则是始终在条件中使用左侧的值部分,如下所示:
if ( 2 == $test ) {
// do something
}
在这种情况下,即使您在此处错误地添加了一个 =
,PHP 也会抛出一个 PHP Parse error
,因为 2 = $test
将不是有效操作。
我正在尝试实现一个 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;
}
抱歉,我的英语不好。
提前致谢。
那是因为你在 if 条件中分配值,而不是检查它们。
if ($tipo_fatura->index = 2) {
注意这里的=
运算符,应该是==
。其他条件也一样。
赋值是一个有效的操作,PHP不会抛出任何错误或通知。因此,一个好的经验法则是始终在条件中使用左侧的值部分,如下所示:
if ( 2 == $test ) {
// do something
}
在这种情况下,即使您在此处错误地添加了一个 =
,PHP 也会抛出一个 PHP Parse error
,因为 2 = $test
将不是有效操作。