在Yii2中将数据从一个表单传递到另一个表单

时间:2018-03-27 22:18:14

标签: php yii2 yii2-advanced-app

我目前在尝试使用按钮将数据从一个表单发送到另一个表单时遇到问题。我有一个程序,由客户要求他们的车辆的新零件。然后,用户在线申请,当部件被批准时,用户然后将信息输入系统。我遇到的问题是我试图将相关数据从一种形式发送到另一种形式。请协助

 <p>
        <?php
        if($model->status=="Approved")
        {
        echo Html::a('Insert into Parts', ['/parts/create?'.$model->lp], ['class' => 'btn btn-primary']) ;
        }
        ?>

    </p>

https://ibb.co/c9rDKn

https://ibb.co/k56kX7

请查看附件。在第一个图像上,它具有保存到数据库中的信息,顶部还有一个名为insert into part的按钮。当用户单击按钮时,它们被重定向到发送表单以插入部件(即第二个图像),但我想当用户单击按钮时,与其相关的信息将被传输到另一个表单。对不起我的英文

1 个答案:

答案 0 :(得分:1)

在创建方法的零件控制器中,您应该处理方案

获取请求:此处您将使用按钮提交的ID加载车辆,然后您将在表单中填写所需的字段。

POST请求:此处您将在保存之前验证您的模型,然后如果情况良好,您将显示视图模型页面。

public function actionCreate($id){
  $vehicle = Vehicle::findOne($id);
  $part = new Part();
  //now we have both Vehicle and new part object 
  //based on your desgin if you want to duplicate both your will do this 
  $pary->lincense_plate = $vehicle->lincense_plate;
  //do it for all then the fields will have values if you use ActiveForm

  //better desgin to avoid duplication and have a relation one to many between vehicle and part
  //send both models and show vehicle data as disable field or span 

  //here we handel post case
  if (Yii::$app->request->isPost) {
    $part->load(Yii::$app->request->post());
    if ($part->save())
      //render view page
      return $this->redirect(['view', 'id' => $part->id]);
  }
  return $this->render('create', [
            'vehicle' => $vehicle,
            'part' => $part,
        ]);
}