再次返回此论坛。 开始询问所有yii2课程 我正在使用_form进行创建和更新。 我使用事件onchange来调用另一个具有创建表单中的关系名称的表。问题是当我使用此表单进行更新时,由于没有触发器事件更改,所以两个字段仍然为空。这是我的表格代码
<?php $idnpwp = ArrayHelper::map(Mfwp::find()->all(),"id", "npwp");?>
<?= $form->field($model, 'id_sm_wp')->widget(Select2::classname(), [
'language' => 'id',
'data' => $idnpwp,
'options' => ['placeholder' => 'Select a NPWP ...'],
'pluginOptions' => [
'allowClear' => true
],
'pluginEvents' => [
'change'=>'function(event){
var data_id = event.currentTarget.value;
$.post("'.Url::to(['mfwp/lists']).'?id="+data_id,function(data){
$("input#namas").val(data.nama_wp);$("#alamats").val(data.alamat_wp);
$("input#nips").val(data.nip_pendek);
$("input#namaar").val(data.pejabat.nama)
});
}'
]
]);
?>
<?php if ($this->action->id == "update"){
//what code should be
}
?>
<label> Nama Wajib Pajak </label>
<?= Html::textInput('nama','', $options=['id' => 'namas','class'=>'form-
control', 'style'=>'width:1140px;margin-left:0px']) ?>
<br>
<label> Alamat Wajib Pajak </label>
<?= Html::textArea('alamat','', $options=['id' => 'alamats','class'=>'form-
control', 'style'=>'width:1140px;margin-left:0px']) ?>
<br>
<table >
<tr>
<th>
<label> NIP </label>
<?= Html::input('text','nip','', $options=['id' =>
'nips','class'=>'form-control', 'style'=>'width:200px;margin-
left:0px']) ?>
</th>
<th>
<label style='margin-left:100px'> Nama Account Representative
</label>
<?= Html::input('text','nama','', $options=['id' =>
'namaar','class'=>'form-control',
'style'=>'width:840px;margin-left:100px']) ?>
</th>
</tr>
</table>
<br>
我应该阅读任何参考文献以处理这种情况。.thx
答案 0 :(得分:1)
如果我明白你想要什么 那么从我的角度来看,最好的方法就是使用setter和getter
例如:
替换此代码
<?= Html::input('text','nip','', $options=['id' =>
'nips','class'=>'form-control', 'style'=>'width:200px;margin-
left:0px']) ?>
使用以下代码:
<?= $form->field($model, 'nip')->textInput() ?>
此后,您需要在此模型($ model)中添加一个setter和getter方法。
还添加一个私有财产 $ _ nip 设置方法应为:
public function setNip($value)
{
$this->_nip = $value;
}
u需要处理保存逻辑。 吸气方法应为:
public function getNip($value)
{
if(empty($this->_nip)){
// Code to get the value from other Table
}
return $this->_nip;
}
最后不要忘记将新属性添加到rules方法,以便模型在模型中进行设置。