我使用的是Yii2
,我有两个表和两个模型:table 1: tenderprice:(id, itemname, quanity)(id is primary key)
,型号名称= Tenderprice
,表2:tenderpricelist:id pk,singleprice, totalprice,tenderpriceid: (tenderpriceid is foreign key refers to Tenderprice)
,型号名称:Tenderpricelist
现在我想要的数量时,itemname是选择:
<?
$itemtenders=Tenderprice::find()->all();
$itemlist=ArrayHelper::map($itemtenders,'id','itemname');
echo $form->field($model, 'tenderpriceid')->dropDownList($itemlist,['prompt'=>'Select tender'])->hint('Please choose item one by one')->label('Add Items');
?>
// inserting data into tenderpricelist based on the selection of table tenderprice
<?= $form->field($model, 'singleprice')->textInput(['maxlength' => true])->hint('Please enter your price') ?>
<?= $form->field($model, 'totalprice')->textInput(['maxlength' => true])
?>
现在,我想根据从下拉列表中选择的项目名称将数据插入tenderpricelist表。下拉列表可以正确填充,但当选择项目名称时,我无法访问“数量”列的值。我只想当我从下拉列表中选择项目名称时,其相应的数量将显示在文本框或标签上,并且我的表tenderpricelist中的totalprice列将为:总价
totalprice=quantity *singleprice
注:单价在tenderprice表中,数量在父表tenderprice中。
1条答案
按热度按时间1szpjjfi1#
最好的选择是在从$form中获取信息后,在controller(如果您的验证需要数量值)或model(如果验证不需要数量值)中进行处理。在那里,在验证和保存之前,您可以使用由以下公式给出的值进行操作:
$_GET ($tenderId = Yii::$app->response->get('FormName['tenderpriceid']))
或$_POST ($tenderId = Yii::$app->response->post('FormName['tenderpriceid']))
个“FormName”,您必须通过查看调试来查看它。一旦您获得
$tenderId
,您可以进行数据库查询并找到数量:$quantity = Tenderprice::find()->one()->where(['id' => $tenderId]);
然后你可以把这个值传递给保存或更新选项。让我知道这是否有效,或者请发布模型和控制器。