在同一个Controller中将变量从一个函数传递到另一个函数

时间:2017-02-01 09:10:51

标签: php laravel

这是我的控制器和显示视图的功能。目前我必须重复从index到exportPDF的所有变量。因此,出口需要太多时间。

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变量从index传递给exportPDF函数?顺便说一句。 web.php(Laravel 5.3)中的路由设置如下:

Route::get('exportPDF/{id}', 'MyController@exportPDF');

1 个答案:

答案 0 :(得分:3)

您应该使用类似下面的代码

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');
    }
}