我需要的是,当我点击“Register Passage”按钮时,除了保存注册之外,它还应该为我打印一个 pdf。
“Store”动作做得很好,问题是“pasajeImpreso”动作没有执行我。
如果他们工作,两者分开。
{!!Form::open(array('url'=>'generar/pasaje','method'=>'POST','autocomplete'=>'off'))!!}
{{Form::token()}}
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<a href="{{URL::action('PasajeController@pasajeImpreso')}}" target="_blank">
<button class="btn btn-md btn-block btn-primary" type="submit">Registrar Pasaje</button>
</a>
</div>
{!!Form::close()!!}
这是我的 Printedpass() 操作:
public function pasajeImpreso()
{
$query = DB::table('pasajes as p')
->
$view = \View::make('generar.pasaje.pasajeImpreso')->render();
$pdf = \App::make('dompdf.wrapper');
$pdf->loadHTML($view);
return $pdf->stream('Pasaje');
}
PrintedPassenger 操作的路线是这样的:
Route::get('pasaje_impreso', ['uses' => 'PasajeController@pasajeImpreso']);
为此,我正在使用 barryvdh/laravel-dompdf 包
我解决了,我只需要将 onclick 属性放在按钮上:
并在底部发布一个脚本:
路线是一样的:
=)
您可以轻松地使用 javascript 打开您的 pdf,因此您将发送注册该段落的请求,同时您将生成您的打印段落。
替代解决方案
这样,您将调用存储记录的控制器,然后重定向到其他操作的路线(所有内容都将呈现在同一页面上)。