我想将变量 $ name 和 $ age 从我的控制器传递到mpdf视图页面。 但是,它给了我一个错误:未定义的变量:name 。
我试图通过三种方式传递数据: 1)在控制器 getName()和 getAge()中创建了单独的方法,并在视图中调用它们
2)在呈现页面时发送变量
3)尝试直接从视图中查询数据库的年龄和姓名。
所有三种方式均未产生结果。 1和3导致页面未加载,第二个页面显示未定义的变量:名称错误。
查看:
<div><?= $name; ?></div>
P.S。我也尝试这样做:
<div><?echo $name; ?></div>
<div><?php $name; ?></div>
控制器:
public function actionIndex(){
$this->actionCreateMPDF();
$a = Profile::find('age')->where(['user_id'=>\Yii::$app->user->id])->asArray()->one();
$age = $a['age'];
$n = Profile::find('name')->where(['user_id'=>\Yii::$app->user->id])->asArray()->one();
$name = $n['name'];
return $this->render('index',[
'age' => $age,
'name' => $name,
]);
}
public function actionCreateMPDF(){
$b = true;
$mpdf = new mPDF();
$mpdf->WriteHTML($this->renderPartial('index'));
$mpdf->showImageErrors = true;
$mpdf->Output();
exit;
}
如果有人知道我的问题是什么,请帮助我:3
答案 0 :(得分:0)
需要将变量传递给函数actionCreatePdf()
public function actionIndex(){
$profileData = Profile::find()
->select(['age', 'name'])
->where(['user_id'=>\Yii::$app->user->id])
->one();
$age = $profileData->age;
$name = $profileData->name;
$this->actionCreateMPDF($age, $name);
return $this->render('index',[
'age' => $age,
'name' => $name,
]);
}
public function actionCreateMPDF($age, $name){
$b = true;
$content = $this->renderPartial('index',[
'age' => $age,
'name' => $name,
]);
$mpdf = new mPDF();
$mpdf->WriteHTML($content);
$mpdf->showImageErrors = true;
$mpdf->Output();
exit;
}