获取未定义的变量错误

时间:2015-09-29 07:56:48

标签: php yii2

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时会出现未定义的错误?

3 个答案:

答案 0 :(得分:0)

试试这个:

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]);
        }
}

答案 1 :(得分:0)

  

为什么在我使用此$ event和$ address时会出现未定义的错误   以形式查看??

因为您还没有通过模型事件&地址($ event和$ address)到视图中(成功和失败)。在控制器中 你应该添加以下代码行

  return $this->render('sucess',['event'=> $event, 'address' => $ address]);

答案 2 :(得分:0)

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

在if语句中进行以下更改可以解决问题,

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

逻辑OR有助于yii区分相应的模型变量。

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