Laravel:Jasper在laravel lumen5.6中报道

问题描述 投票:0回答:1

我已经用laravel实现了jasper报告,它对我来说很好。现在我转移到laravel流明的api建设,所以我尝试整合jasper,就像我整合在我的laravel项目中一样,但是在laravel流明中它会抛出一些错误,如下所示: -

Call to undefined method Laravel\Lumen\Application::booting()

下面是我的连接代码

class_alias(JasperPHP\JasperPHPServiceProvider::class,'JasperPHP');
   $app->withFacades(); $app->withEloquent(); 
   $app->register(App\Providers\AppServiceProvider::class); 
   $app->register(App\Providers\AuthServiceProvider::class); 
   $app->register(App\Providers\EventServiceProvider::class); 
   $app->register(JasperPHP\JasperPHPServiceProvider::class);

请分享您的想法,提前致谢

php laravel-5 lumen
1个回答
0
投票

我终于想出了一个解决方案,它与下面的laravel流明5.6工作正常的步骤: - 1)按以下命令安装JasperReports 6库

composer require cossou/jasperphp

在bootstrap / app.php中取消注释此行$app->withFacades();并添加以下代码

$app->singleton('jasperphp', function ($app) {
            return new JasperPHP;
        });
 $app->alias('JasperPHP\JasperPHPServiceProvider\JasperPHP', 'JasperPHP');

控制器部分更改

namespace App\Http\Controllers;
use JasperPHP\JasperPHP as JasperPHP;
use Illuminate\Http\Request;

//dd(__DIR__ . '/../../vendor/cossou/jasperphp/examples/hello_world.jasper');
class ReportController extends Controller {

    public function generateReport() {
        //JasperPHP::compile(base_path('/vendor/cossou/jasperphp/examples/hello_world.jrxml'))->execute();
        $jasper = new JasperPHP;
        $filename = 'gau';
        $output = base_path('//public/reports/' . $filename);
        $jasper->process(
                base_path('/vendor/cossou/jasperphp/examples/LaravelIreporTest.jasper'), 
                $output,
                array("pdf"), 
                array("test" => "Tax Invoice"), 
                array(
                        'driver' => 'mysql',
                        'username' => 'username',
                        'password' => 'password',
                        'host' => 'localhost',
                        'database' => 'database name',
                        'port' => '3306',
                      )
        )->execute();
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.