Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在同一控制器中将变量从一个函数传递到另一个函数_Php_Laravel - Fatal编程技术网

Php 在同一控制器中将变量从一个函数传递到另一个函数

Php 在同一控制器中将变量从一个函数传递到另一个函数,php,laravel,Php,Laravel,这是我的控制器和显示视图的功能。目前,我必须重复从索引到导出PDF的所有变量。因此,出口需要花费太多的时间 class MyController extends Controller { public function index($id) { $article = Article::find($id); return view('articles', compact('article'); } } 另一种方法是实际导出pdf。我希望它更短,更简

这是我的控制器和显示视图的功能。目前,我必须重复从索引到导出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()