Bonjour,

Voila je rencontre un petit problème avec mon code.

Je suis actuellement en stage en entreprise et j'ai pour mission de réaliser un GANTT relié aux informations d'une base de données.
Pour le GANTT j'ai utilisé Google Gantt Chart (JavaScript) :

function ganttnew() {
    google.charts.load('current', {'packages': ['gantt']});

    google.charts.setOnLoadCallback(drawChart);

    function drawChart() {

        var data = new google.visualization.DataTable();
        data.addColumn('string', 'ID');
        data.addColumn('string', 'Nom action');
        data.addColumn('string', 'Groupe de travail');
        data.addColumn('date', 'Date de début');
        data.addColumn('date', 'Date de fin');
        data.addColumn('number', 'Durée');
        data.addColumn('number', 'Avancement');
        data.addColumn('string', 'Dependencies');

        data.addRows([
            ['11', 'Action Gantt 1', 'Apprendre Gimp',
                new Date(2019, 5, 28), new Date(2019, 6, 26), null, 50, null],
            ['12', 'Action Gantt 2', 'Apprendre Gimp',
                new Date(2019, 5, 25), new Date(2019, 6, 26), null, 25, null]
        ]);

        var options = {
            height: 400,
            gantt: {
                trackHeight: 30
            }
        };

        var chart = new google.visualization.Gantt(document.getElementById('chart_div'));

        chart.draw(data, options);
    }
}

Ce fichier fonctionne très bien lorsque je l'appelle dans ma vue twig :

<script src="{{ asset('../js/gantt-new.js') }}"></script>
<p id="chart_div" onclick="ganttnew()">GANTT</p>

Donc, voilà mon problème : j'aimerais que les données que l'on retrouve dans data.addRows soit les données de ma BDD et non pas des données fixes. Or, je ne sais pas vraiment comment m'y prendre (faire de l'AJAX est sûrement une possibilité mais je n'en ai jamais fait). Si quelqu'un pourrait m'éclairer sur mon problème en me conseillant des tutos ou en me donnant une marche à suivre je suis partant.

A défaut de savoir comment récupérer les données de la BDD, j'arrive à les afficher dans ma vue twig en brut :

{% for action in actions %}
   {{ action }}
{% endfor %}

Et pour plus de précisions, voici mon controlleur :

class GanttController extends AbstractActionController
{

    public function testAction($id)
    {
        if ($id == "all") {
            $test = "all";
            $actions = $this->getServiceFactory()->getActionService()->getAdminActions();
            return $this->render('@../Gantt/GanttTest.html.twig', array(
                'actions' => $actions,
                'test' => $test
            ));
        } else {
            $test = $this->getManagerFactory()->getTestManager()->getById($id);
            $actions = $this->getManagerFactory()->getActionManager()->getActionsForProject($test);
            return $this->render('@../Gantt/GanttTest.html.twig', [
                'actions' => $actions,
                'test' => $test
            ]);
        }
    }
}

Merci d'avance pour votre aide.

Aucune réponse