1

我正在使用 KnpLabs Snappy PDF 库在 Laravel 4 中生成 PDF。当我明确地将所有代码放入 routes.php 文件时,一切都运行良好,但是当我路由到控制器和方法时,我的代码不再有效?我是否遗漏了什么,或者如果在控制器中执行此代码,我还需要做更多的事情。

路由'test1'按预期工作,路由'test2'刷新浏览器并且什么都不显示,甚至没有任何错误。

路由.php

<?php

Route::get('test1', function()
{
    $pdf = new Knp\Snappy\Pdf('/path/to/vendor/google/wkhtmltopdf-amd64/wkhtmltopdf-amd64');
    $headers = array(
        'Content-Type' => 'application/pdf',
        'Content-Disposition' => 'attachment; filename="file22.pdf"',
    );
    return Response::make($pdf->getOutputFromHtml('<h1>Works!</h1>'), 200, $headers);
});

Route::group(array('prefix' => 'trial'), function()
{
    Route::get('test2', 'MyController@download');
});

MyController.php

<?php

class MyController extends \BaseController {


    public function download()
    {
        $pdf = new Knp\Snappy\Pdf('/path/to/vendor/google/wkhtmltopdf-amd64/wkhtmltopdf-amd64');
        $headers = array(
            'Content-Type' => 'application/pdf',
            'Content-Disposition' => 'attachment; filename="file22.pdf"',
        );
        return Response::make($pdf->getOutputFromHtml('<h1>Works!</h1>'), 200, $headers);
    }
}
4

2 回答 2

0

我注意到您需要(有时?)使用前导斜杠指定 url:

Route::group(array('prefix' => 'trial'), function()
{
    Route::get('/test2', 'MyController@download');
});

尽管官方文件另有说明/建议。

可能与 Laravel 应用程序配置有关,但没有时间进一步调查。

于 2013-11-12T16:36:59.727 回答
0

解决了。由于某种原因,如果在 a或 adownload()中指定方法的内容,则该方法的内容不起作用。Route::resource()Route::group()

当我明确说明它自己的路线时,一切正常。

像这样:Route::get('trial/test2', 'MyController@download');

我不知道为什么会这样,但是如果其他人可以阐明这背后的原因,我会非常感兴趣。

于 2013-07-24T07:21:52.023 回答