koolreport/laravel

允许无缝地在Laravel中使用KoolReport

2.1.0 2024-09-20 07:18 UTC

README

毫无疑问,Laravel 是世界上最受欢迎的PHP框架。它易于学习,快速且功能强大,适用于任何Web应用。

自从我们创建了KoolReport,我们收到了许多类似“如何在Laravel中使用KoolReport?”的问题。答案是KoolReport旨在与任何PHP框架协同工作,Laravel只是其中之一。使它们协同工作的设置很简单,但我们希望使事情变得更简单。

Laravel包 是一个附加扩展,使KoolReport能够在Laravel框架环境中无缝工作。通过添加包,使用KoolReport创建的报告将自动识别Laravel数据库。此外,KoolReport的小部件将配置资产路径和URL,这样所有内容都可以工作,无需您进行任何进一步的设置。只需一行代码即可实现。

use \koolreport\laravel\Friendship;

虽然Laravel是一个通用目的的PHP框架,但KoolReport只专注于报告、数据处理、图表和图形。KoolReport将使Laravel的报告功能达到极致。为了娱乐比较,Laravel与KoolReport就像索尔与心灵宝石一样,而这个包就像将它们连接起来的手套。Laravel是一个强大的框架,而KoolReport将使其变得更好。

要求

  1. KoolReport >= 2.75.0
  2. Laravel >= 4.2

安装

通过下载.zip文件

  1. 下载
  2. 解压缩zip文件
  3. 将文件夹laravel复制到koolreport文件夹,使其看起来如下
koolreport
├── core
├── laravel

通过composer

composer require koolreport/laravel

文档

逐步教程

步骤 1: 创建报告并与Laravel建立友谊

  1. 首先,在Laravel的app文件夹内创建一个名为Reports的文件夹
  2. 在Reports文件夹内,创建两个文件MyReport.phpMyReport.view.php
  3. 在报告中添加use \koolreport\laravel\Friendship,如下所示

MyReport.php

<?php
namespace App\Reports;

class MyReport extends \koolreport\KoolReport
{
    use \koolreport\laravel\Friendship;
    // By adding above statement, you have claim the friendship between two frameworks
    // As a result, this report will be able to accessed all databases of Laravel
    // There are no need to define the settings() function anymore
    // while you can do so if you have other datasources rather than those
    // defined in Laravel.
    

    function setup()
    {
        // Let say, you have "sale_database" is defined in Laravel's database settings.
        // Now you can use that database without any futher setitngs.
        $this->src("sale_database")
        ->query("SELECT * FROM offices")
        ->pipe($this->dataStore("offices"));        
    }
}

MyReport.view.php

<?php
use \koolreport\widgets\koolphp\Table;
?>
<html>
    <head>
    <title>My Report</title>
    </head>
    <body>
        <h1>It works</h1>
        <?php
        Table::create([
            "dataSource"=>$this->dataStore("offices")
        ]);
        ?>
    </body>
</html>

步骤 2: 运行报告并显示报告

现在您有了MyReport,为了在Laravel中显示报告,您将在控制器中创建MyReport对象,并将其传递给视图以进行渲染。

HomeController.php

<?php

namespace App\Http\Controllers;

use App\Reports\MyReport;

class HomeController extends Controller
{
public function __contruct()
    {
        $this->middleware("guest");
    }
    public function index()
    {
        $report = new MyReport;
        $report->run();
        return view("report",["report"=>$report]);
    }
}

report.blade.php

<?php $report->render(); ?>

其他注意事项

自动生成的资产

Laravel包 将自动在Laravel的public文件夹内创建一个名为koolreport_assets的文件夹,以保存报告资源,如JavaScript文件或CSS文件。

除了Laravel的默认数据源以外的其他数据源

如果您有除了Laravel数据源以外的其他数据源,您可以在settings()函数中自由添加它们。例如,在下面的示例代码中,我们将有另一个csv源

class MyReport extends \koolreport\KoolReport
{
    use \koolreport\laravel\Friendship;
    function settings()
    {
        return array(
            "dataSources"=>array(
                "csv_source"=>array(
                    "class"=>'\koolreport\datasources\CSVDataSource',
                    'filePath'=>dirname(__FILE__)."\mycsvdata.csv",
                )
            )
        );
    }
}

自定义资产文件夹

默认情况下,添加Friendship将自动配置报告的资产路径和URL。但在某些情况下,如果您想设置自己的位置,您可以这样做

class MyReport extends \koolreport\KoolReport
{
    function settings()
    {
        return array(
            "assets"=>array(
                "path"=>"../../public/resources/kool"
                "url"=>"resources/kool"
            )
        );
    }
}

path可以是报告到资产文件夹的相对路径或资产文件夹的绝对路径。

url是浏览器访问资产文件夹的URL。

支持

如果您需要支持,请使用我们的论坛,这样其他人也可以从中受益。如果支持请求需要隐私,您可以发送电子邮件到我们,地址为 support@koolreport.com