在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'? –