Установить метки из массива - PullRequest
0 голосов
/ 05 апреля 2019

Я начинаю с chartjs и уже борюсь. Я хочу установить метки с данными, полученными из запроса:

public function find4Chart($joueur){
    $qb = $this->createQueryBuilder('p');

    $qb->join('p.partie','y')
        ->join('y.game','g')
        ->select('g.name')
        ->addSelect('COUNT(p) AS sumParties')
        ->where('p.joueur = :joueur')
        ->setParameter('joueur', $joueur)
        ->groupBY('g.name');

    $query = $qb->getQuery();
    return $query->getResult();
}

Затем я настроил график так:

var ctx = document.getElementById('myChart');
var myChart = new Chart(ctx, {
    type: 'doughnut',
    data: {
        labels: [{{ chart.name }}],

Но это дает мне следующую ошибку, и я не знаю, почему и что здесь делать: /

Ключ "name" для массива с ключами "0, 1" не существует.

Спасибо!

Ответы [ 2 ]

1 голос
/ 06 апреля 2019

Относительно вашего собственного ответа - вы можете изменить эту часть:

$arrChart = array();
foreach($chart as $c){
    $name = $c['name'];
    array_push($arrChart, $name);
}

в это:

$arrChart = array_column($chart, 'name');

Подробнее о array_column можно прочитать здесь

0 голосов
/ 05 апреля 2019

Хорошо, у меня так получилось:

public function show(Joueur $joueur): Response
{
    $em = $this->getDoctrine()->getManager();        
    $chart = $em->getRepository(Played::class)->find4Chart($joueur);
    $arrChart = array();
    foreach($chart as $c){
        $name = $c['name'];
        array_push($arrChart, $name);
    }

    return $this->render('joueur/show.html.twig', [
        'joueur' => $joueur,
        'chart' => $arrChart,
    ]);
}

Диаграмма:

var ctx = document.getElementById('myChart');
var myChart = new Chart(ctx, {
    type: 'doughnut',
    data: {
        labels: {{chart | json_encode | raw}},

Я не знаю, правильно ли это делать, но это работает, если у кого-нибудь из вас есть идея получше, я возьму ее;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...