Php 获取未定义变量错误

Php 获取未定义变量错误,php,yii2,Php,Yii2,为什么在表单视图中使用此$event和$address时会出现未定义错误???请尝试以下操作: public function actionSubmit(){ $event= new Events(); $address=new Addresses(); if($event->load(yii::$app->request->post()) && $event->save() && $address->load

为什么在表单视图中使用此$event和$address时会出现未定义错误???

请尝试以下操作:

public function actionSubmit(){
    $event= new Events();
    $address=new Addresses();
    if($event->load(yii::$app->request->post()) && $event->save() && $address->load(yii::$app->request->post()) && $address->save())
    {
        return $this->render('sucess');
    }
    else{
        return $this->render('unsucess');
    }
}
为什么在中使用此$event和$address时会出现未定义的错误 以表格形式查看

因为您尚未将模型Events&Addresses$event和$address的实例传递到viewssuccess&success中。在控制器中 您应该添加以下代码行

public function actionSubmit(){
        $event= new Events();
        $address=new Addresses();
        if($event->load(yii::$app->request->post()) && $event->save() && $address->load(yii::$app->request->post()) && $address->save())
        {
            return $this->render('sucess', ['event' => $event, 'address' => $address]);
        }
        else{
            return $this->render('unsucess', ['event' => $event, 'address' => $address]);
        }
}

这是因为$event和$address属于不同的模型。当表单提交发生在模型事件中时,当表单提交发生在模型地址中时,$address不存在

在if语句中进行以下更改将解决此问题

  return $this->render('sucess',['event'=> $event, 'address' => $ address]);
逻辑OR将帮助yii区分相应的模型变量

我的建议是对不同的模型使用不同的操作方法,使其更加模块化

($event->load(yii::$app->request->post()) && $event->save()) || ($address->load(yii::$app->request->post()) && $address->save())