mapescador / chartjs-bundle
直接从ORM实体构建出色的图表
2.0.3
2022-02-14 13:41 UTC
Requires
- php: ^7.1.3||^8.0
- doctrine/doctrine-bundle: ^1.0||^2.0
- doctrine/orm: ^2.2
- mukadi/chartjs-builder: ^1.1
- symfony/framework-bundle: ^5.0||^5.3
- twig/twig: ^2.10||^3.0
Suggests
- symfony/asset: For a best management of your assests, URL generation and versionning
README
使用 MukadiChartJsBundle
直接从ORM实体构建出色的图表,创建与您的数据模型直接映射的高质量图表。MukadiChartJsBundle
是为symfony适配的 mukadi/chartjs-builder 包。以下是提供的一些功能:
- 一个从DQL查询构建图表的服务
- 一个从原生SQL查询构建图表的服务
- 一个用于在视图中渲染图表的Twig扩展
安装
通过运行以下命令通过composer安装此包
php composer.phar require mukadi/chartjs-bundle
然后运行 php bin/console assets:install
以在公共网页目录中安装资源
图表构建器
该包提供两个图表构建器作为服务
您可以将图表构建器当作任何其他symfony服务一样使用
namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Mukadi\Chart\Utils\RandomColorFactory; use Mukadi\ChartJSBundle\Chart\Builder use Mukadi\Chart\Chart; class AppController extends Controller{ public function chart(Builder $builder) { $builder ->query('SELECT COUNT(*) total, p.type FROM \App\Entity\Post p GROUP BY p.type') ->addDataset('total','Total',[ "backgroundColor" => RandomColorFactory::getRandomRGBAColors(6) ]) ->labels('type') ; $chart = $builder->buildChart('my_chart',Chart::PIE); return $this->render('chart.html.twig',[ "chart" => $chart, ]); } }
您也可以传递一个Doctrine\ORM\Query对象而不是DQL查询。这允许您使用存储图表查询的仓库。
... $query = $this->getDoctrine()->getManager()->createQuery('SELECT COUNT(*) total, p.type FROM \App\Entity\Post p GROUP BY p.type'); $builder ->query($query) ->addDataset('total','Total',[ "backgroundColor" => RandomColorFactory::getRandomRGBAColors(6) ]) ->labels('type') ; ...
如果您想了解更多关于图表构建的信息,请参阅 mukadi/chartjs-builder 文档
在Twig模板中渲染图表
在twig模板中使用用于图表渲染的专用函数
{{ mukadi_chart(chart) }}
不要忘记在您的页面中包含库
<script src="/bundles/mukadichartjs/Chart.bundle.min.js"></script> <script src="/bundles/mukadichartjs/mukadi.chart.min.js"></script>
就是这样!