在actionLayer中单击prict按钮时,我想将数据传递给page_printinvoice。这部分工作正常。现在,我想在传递到视图页面之前访问if语句。如果控制台是GM,我想传递给_printinvoicegm,并且控制台是SM。我想传递给_printinvoicesm。我已经在控制器操作中尝试了以下代码。如果在yii2中条件重定向
public function actionPrintinvoice($id) {
$model = Bills::find()->where(['bills_ebillid' => $id])->one();
$searchModel = new BillsSearch();
$searchModel->console = $consoleid;
$dataProvider = $searchModel->search(Yii::$app->request->queryParams, $consoleid);
//$data = Sellsg::findOne($id);
$searchModel1 = new ProductsalesSearch();
$searchModel1->productsales_ebillid = $id;
$dataProvider1 = $searchModel1->search(Yii::$app->request->queryParams);
// $modelOffer = Offers::find()->orderBy('of_id')->limit(1)->one();
// $searchModel2 = new OffersSearch();
// $dataProvider2 = $searchModel2->search(Yii::$app->request->queryParams);
if($consoleid == 'GM1' || $consoleid == 'GM2'){
$content = $this->renderPartial('_printinvoicegm', [
'model' => $model,
'dataProvider' => $dataProvider,
'searchModel' => $searchModel,
'searchModel1' => $searchModel1,
'dataProvider1' => $dataProvider1,
// 'modelOffer' => $modelOffer,
//'searchModel2' => $searchModel2,
//'dataProvider2' => $dataProvider2,
]);
$footer = "<table name='footer' width=\"1000\">
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\"><u>GM</u></td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">9:00am to 9:00pm</td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">Friday Morning Closed</td>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"right\">Prop: M.Sinha</td>
</tr>
</table>";
$pdf = new Pdf([
'mode'=> Pdf::MODE_UTF8,
'format'=> Pdf::FORMAT_A4,
'destination'=> Pdf::DEST_BROWSER,
//'destination' => Pdf::DEST_DOWNLOAD,
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',
// any css to be embedded if required
'cssInline' => '.kv-heading-1{font-size:18px}',
// set mPDF properties on the fly
'options' => ['title' => 'Print Invoice'],
//'options' => ['defaultfooterline' => 0,],
// call mPDF methods on the fly
'methods' => [
//'SetHeader'=>['Amit Optical'],
'SetFooter'=>[$footer],
],
'content' => $content,
]);
}elseif($consoleid == 'SM1' || $consoleid == 'SM2'){
$content = $this->renderPartial('_printinvoicegm', [
'model' => $model,
'dataProvider' => $dataProvider,
'searchModel' => $searchModel,
'searchModel1' => $searchModel1,
'dataProvider1' => $dataProvider1,
// 'modelOffer' => $modelOffer,
//'searchModel2' => $searchModel2,
//'dataProvider2' => $dataProvider2,
]);
$footer = "<table name='footer' width=\"1000\">
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\"><u>SM</u></td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">9:00am to 9:00pm</td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">Friday Morning Closed</td>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"right\">Prop: M.Sinha</td>
</tr>
</table>";
$pdf = new Pdf([
'mode'=> Pdf::MODE_UTF8,
'format'=> Pdf::FORMAT_A4,
'destination'=> Pdf::DEST_BROWSER,
//'destination' => Pdf::DEST_DOWNLOAD,
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',
// any css to be embedded if required
'cssInline' => '.kv-heading-1{font-size:18px}',
// set mPDF properties on the fly
'options' => ['title' => 'Print Invoice'],
//'options' => ['defaultfooterline' => 0,],
// call mPDF methods on the fly
'methods' => [
//'SetHeader'=>['Amit Optical'],
'SetFooter'=>[$footer],
],
'content' => $content,
]);
}elseif($consoleid == 'CN'){
$content = $this->renderPartial('_printinvoicegm', [
'model' => $model,
'dataProvider' => $dataProvider,
'searchModel' => $searchModel,
'searchModel1' => $searchModel1,
'dataProvider1' => $dataProvider1,
// 'modelOffer' => $modelOffer,
//'searchModel2' => $searchModel2,
//'dataProvider2' => $dataProvider2,
]);
$footer = "<table name='footer' width=\"1000\">
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\"><u>CN</u></td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">9:00am to 9:00pm</td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">Friday Morning Closed</td>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"right\">Prop: M.Sinha</td>
</tr>
</table>";
$pdf = new Pdf([
'mode'=> Pdf::MODE_UTF8,
'format'=> Pdf::FORMAT_A4,
'destination'=> Pdf::DEST_BROWSER,
//'destination' => Pdf::DEST_DOWNLOAD,
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',
// any css to be embedded if required
'cssInline' => '.kv-heading-1{font-size:18px}',
// set mPDF properties on the fly
'options' => ['title' => 'Print Invoice'],
//'options' => ['defaultfooterline' => 0,],
// call mPDF methods on the fly
'methods' => [
//'SetHeader'=>['Amit Optical'],
'SetFooter'=>[$footer],
],
'content' => $content,
]);
}
return $pdf->render();
//return $this->render('_printSalarystatement', ['s_period' => $s_period]);
}
在这段代码中,我得到的错误 -
Undefined variable: consoleid
请帮助。
更新
public function actionPrintinvoice($id) {
$consoleid = 'My_console_id';
$model = Bills::find()->where(['bills_ebillid' => $id])->one();
$searchModel = new BillsSearch();
$searchModel->console = $consoleid;
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
//$data = Sellsg::findOne($id);
$searchModel1 = new ProductsalesSearch();
$searchModel1->productsales_ebillid = $id;
$dataProvider1 = $searchModel1->search(Yii::$app->request->queryParams);
// $modelOffer = Offers::find()->orderBy('of_id')->limit(1)->one();
// $searchModel2 = new OffersSearch();
// $dataProvider2 = $searchModel2->search(Yii::$app->request->queryParams);
if($consoleid == 'GM1' || $consoleid == 'GM2'){
$content = $this->renderPartial('_printinvoicegm', [
'model' => $model,
'dataProvider' => $dataProvider,
'searchModel' => $searchModel,
'searchModel1' => $searchModel1,
'dataProvider1' => $dataProvider1,
// 'modelOffer' => $modelOffer,
//'searchModel2' => $searchModel2,
//'dataProvider2' => $dataProvider2,
]);
$footer = "<table name='footer' width=\"1000\">
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\"><u>GM</u></td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">9:00am to 9:00pm</td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">Friday Morning Closed</td>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"right\">Prop: M.Sinha</td>
</tr>
</table>";
$pdf = new Pdf([
'mode'=> Pdf::MODE_UTF8,
'format'=> Pdf::FORMAT_A4,
'destination'=> Pdf::DEST_BROWSER,
//'destination' => Pdf::DEST_DOWNLOAD,
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',
// any css to be embedded if required
'cssInline' => '.kv-heading-1{font-size:18px}',
// set mPDF properties on the fly
'options' => ['title' => 'Print Invoice'],
//'options' => ['defaultfooterline' => 0,],
// call mPDF methods on the fly
'methods' => [
//'SetHeader'=>['Amit Optical'],
'SetFooter'=>[$footer],
],
'content' => $content,
]);
return $pdf->render();
}elseif($consoleid == 'SM1' || $consoleid == 'SM2'){
$content = $this->renderPartial('_printinvoicesm', [
'model' => $model,
'dataProvider' => $dataProvider,
'searchModel' => $searchModel,
'searchModel1' => $searchModel1,
'dataProvider1' => $dataProvider1,
// 'modelOffer' => $modelOffer,
//'searchModel2' => $searchModel2,
//'dataProvider2' => $dataProvider2,
]);
$footer = "<table name='footer' width=\"1000\">
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\"><u>SM</u></td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">9:00am to 9:00pm</td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">Friday Morning Closed</td>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"right\">Prop: M.Sinha</td>
</tr>
</table>";
$pdf = new Pdf([
'mode'=> Pdf::MODE_UTF8,
'format'=> Pdf::FORMAT_A4,
'destination'=> Pdf::DEST_BROWSER,
//'destination' => Pdf::DEST_DOWNLOAD,
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',
// any css to be embedded if required
'cssInline' => '.kv-heading-1{font-size:18px}',
// set mPDF properties on the fly
'options' => ['title' => 'Print Invoice'],
//'options' => ['defaultfooterline' => 0,],
// call mPDF methods on the fly
'methods' => [
//'SetHeader'=>['Amit Optical'],
'SetFooter'=>[$footer],
],
'content' => $content,
]);
return $pdf->render();
}
elseif($consoleid == 'CN'){
$content = $this->renderPartial('_printinvoicecn', [
'model' => $model,
'dataProvider' => $dataProvider,
'searchModel' => $searchModel,
'searchModel1' => $searchModel1,
'dataProvider1' => $dataProvider1,
// 'modelOffer' => $modelOffer,
//'searchModel2' => $searchModel2,
//'dataProvider2' => $dataProvider2,
]);
$footer = "<table name='footer' width=\"1000\">
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\"><u>CN</u></td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">9:00am to 9:00pm</td>
</tr>
<tr>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"left\">Friday Morning Closed</td>
<td style='font-size: 18px; padding-bottom: 20px;' align=\"right\">Prop: M.Sinha</td>
</tr>
</table>";
$pdf = new Pdf([
'mode'=> Pdf::MODE_UTF8,
'format'=> Pdf::FORMAT_A4,
'destination'=> Pdf::DEST_BROWSER,
//'destination' => Pdf::DEST_DOWNLOAD,
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',
// any css to be embedded if required
'cssInline' => '.kv-heading-1{font-size:18px}',
// set mPDF properties on the fly
'options' => ['title' => 'Print Invoice'],
//'options' => ['defaultfooterline' => 0,],
// call mPDF methods on the fly
'methods' => [
//'SetHeader'=>['Amit Optical'],
'SetFooter'=>[$footer],
],
'content' => $content,
]);
return $pdf->render();
}
//return $this->render('_printSalarystatement', ['s_period' => $s_period]);
}
我点击打印按钮重定向到respectiveprint页面。 动作栏的代码是像下面 - 现在
[
'class' => 'kartik\grid\ActionColumn',
'template' => '{update} {print}',
'buttons' => [
'print' => function ($url, $model) {
return Html::a(
'<span class="glyphicon glyphicon-print"></span>',
['/invoice/bills/printinvoice', 'id' => $model->bills_ebillid,'cons' => $model->console ],
[
'title' => 'Print',
'data-pjax' => '0',
]
);
},
],
],
,控制台会传送到URL,但我不能用它来重定向相应的不同页面。
因为你从未宣布过,也没有定义'$ consoleid'此信息。什么是'$ searchModel-> console'? –