Php 获取未定义变量错误
为什么在表单视图中使用此$event和$address时会出现未定义错误???请尝试以下操作: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
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())