Laravel: Джаспер сообщает в laravel lumen5.6 - PullRequest
0 голосов
/ 06 сентября 2018

Я уже реализовал отчеты о яшме с помощью laravel, и он прекрасно работает для меня. Теперь я перешел на laravel lumen для построения API, поэтому я пытаюсь интегрировать jasper так же, как я интегрирую в свои проекты laravel, но в laravel lumen выдает некоторую ошибку, как показано ниже: -

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

Пожалуйста, поделитесь своими мыслями, заранее спасибо

1 Ответ

0 голосов
/ 06 сентября 2018

Я наконец-то нашел решение, и оно отлично работает с просветом 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();
    }

}
...