如何将变量传递给mpdf?

时间:2019-07-18 10:48:11

标签: variables yii2 mpdf

我想将变量 $ 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

1 个答案:

答案 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;
}