Как реализовать диаграмму Dynami c в Symfony? - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь реализовать диаграмму Dynami c с данными из моей БД, а именно: - cost.amount - category.title

Я думаю, что мне нужно, я не уверен, нужно ли мне все oop здесь или doctrine декларация (я даже не уверен, что моя БД хорошо коррелирована), но сейчас это мой контроллер:

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use CMEN\GoogleChartsBundle\GoogleCharts\Charts\PieChart;

class StatsController extends AbstractController
{
    /**
     * @Route("/stats", name="stats")
     */
    public function indexAction()
    {
        $pieChart = new PieChart();
        $pieChart->getData()->setArrayToDataTable(
            [['Categories', 'Pie expense'],
                ['Category 1',  1],
                ['Category 2',  2],
                ['Category 3',  3],
                ['Category 4',  4],
                ['Category 5',  5]
            ]
        );
        $pieChart->getOptions()->setTitle('My expenses report');
        $pieChart->getOptions()->setHeight(500);
        $pieChart->getOptions()->setWidth(900);
        $pieChart->getOptions()->getTitleTextStyle()->setBold(true);
        $pieChart->getOptions()->getTitleTextStyle()->setColor('#009900');
        $pieChart->getOptions()->getTitleTextStyle()->setItalic(true);
        $pieChart->getOptions()->getTitleTextStyle()->setFontName('Arial');
        $pieChart->getOptions()->getTitleTextStyle()->setFontSize(20);

        return $this->render('stats/index.html.twig', array('piechart' => $pieChart));
    }
}

и это мое мнение:

{% extends 'base.html.twig' %}

{% block title %}SIMONE{% endblock %}

{% block body %}

<div class="container">

    {% include 'includes/_navbar.html.twig' %}

    <div id="div_chart"></div>

    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

    <script type="text/javascript"> {{ gc_draw(piechart, 'div_chart') }} </script>

</div>
{% endblock %}

Каждый раз, когда я пытаюсь ввести динамические c данные в свой массив, моя диаграмма исчезает без особых сообщений об ошибке.

(см. Прилагаемое изображение БД)

1 Ответ

1 голос
/ 20 июня 2020

Кажется, ваша проблема не связана с вашей диаграммой.

Если я хорошо понимаю, вы хотите получать данные из своей базы данных, используйте их в своей диаграмме. Код вашей диаграммы кажется очень хорошим. Теперь вам нужно получить данные из своей базы данных.

Я предлагаю вам создать новую страницу, просто пытаясь получить информацию из вашей базы данных, и попытаться отобразить ее как полный текст, и когда вы уверены в том, что получаете из базы данных вы можете попробовать использовать его в своей диаграмме.

И для этого вы, вероятно, захотите использовать Doctrine: https://symfony.com/doc/current/doctrine.html с некоторым кодом, который будет выглядеть так:

/**
* @Route("/product/{id}", name="product_show")
*/
public function show($id)
{
    $product = $this->getDoctrine()
        ->getRepository(Product::class)
        ->find($id);

    if (!$product) {
        throw $this->createNotFoundException(
            'No product found for id '.$id
        );
    }

    return new Response('Check out this great product: '.$product->getName());

    // or render a template
    // in the template, print things with {{ product.name }}
    // return $this->render('product/show.html.twig', ['product' => $product]);
}
...