actioncolumnのprictボタンをクリックすると、データを_printinvoiceページに渡します。この部分は正常に動作しています。今、ビューページに渡す直前にifステートメントが必要です。コンソールがGMの場合、私は_printinvoicegmに渡したいと思います。 _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 = $consoleid;
にアクセスしようとしているpreviosly適切な内容で定義されていないアサインのためのVARS
public function actionPrintinvoice($id) {
$model = Bills::find()->where(['bills_ebillid' => $id])->one();
$searchModel = new BillsSearch();
を割り当てる必要があります
を使用してこの情報をretrive。 '$ searchModel-> console'とは何ですか? –