Php 在同一控制器中将变量从一个函数传递到另一个函数
这是我的控制器和显示视图的功能。目前,我必须重复从索引到导出PDF的所有变量。因此,出口需要花费太多的时间Php 在同一控制器中将变量从一个函数传递到另一个函数,php,laravel,Php,Laravel,这是我的控制器和显示视图的功能。目前,我必须重复从索引到导出PDF的所有变量。因此,出口需要花费太多的时间 class MyController extends Controller { public function index($id) { $article = Article::find($id); return view('articles', compact('article'); } } 另一种方法是实际导出pdf。我希望它更短,更简
class MyController extends Controller {
public function index($id) {
$article = Article::find($id);
return view('articles', compact('article');
}
}
另一种方法是实际导出pdf。我希望它更短,更简单,如下所示:
public function exportPDF($id) {
$pdf = PDF::loadView('articles', ['article' => $article]);
return $pdf->setPaper('a4')->setOrientation('portrait')->setOption('margin-top', 0)->download('export-' . $id . '.pdf');
}
如何将此$article
变量从索引传递到exportPDF函数?顺便说一句,web.php(Laravel 5.3)中的路由设置如下:
Route::get('exportPDF/{id}', 'MyController@exportPDF');
您应该像下面的代码一样使用它
class MyController extends Controller{
public function index($id){
$article = Article::find($id);
$exportedPDF = $this->exportPDF($id,$article);
return view('articles', compact('article');
}
public function exportPDF($id,$article){
$pdf = PDF::loadView('articles', ['article' => $article]);
return $pdf->setPaper('a4')->setOrientation('portrait')->setOption('margin-top', 0)->download('export-' . $id . '.pdf');
}
}
他们在同一个班吗?所以
$this->exportPDF()
应该可以工作吗?例如,如果exportPDF方法位于另一个类PdfGenerator
中,则(新的PdfGenerator)->exportPDF(…)
应该可以工作是的,它们在同一个控制器中。但我不确定我是否了解你。我希望在单击按钮时将页面导出为PDF(调用/exportPDF url)。所以,我需要索引函数中的变量也在exportPDF中。当我复制所有变量并将其粘贴到exportPDF时,它会起作用。但是它看起来很难看,导出pdf需要花费太多时间。当我这样做时,我得到了以下错误缺少App\Http\Controllers\MyController::exportPDF()的参数1
。顺便说一句,我已经将我的路径更改为/exportPDF/
我还更改了函数索引和函数导出PDF,所以复制/粘贴它们,然后重试。如果您不再需要$id
,请将其删除。不,不工作。顺便说一句,我有更多的变量要传递(其中17个)。我可以将$exportedPDF
变量作为数组参数传递给exportPDF函数吗?告诉我如何传递这些变量?你从哪里弄来的?从$request
查看或从控制器查看?我正在函数索引()中创建它们。将它们传递到“文章”视图。在这个视图中,我有一个按钮,它指向/exportPDF
,它使用函数exportPDF()
。只有当我将所有变量从index()
复制到exportPDF()