php - Symfony2 / KitpagesDataGridBundle entities manipulation -


i using symfony 2.7 , kitpagesdatagridbundle

i developing application school in have 2 entities 1-n relationship: section-courses.

here 2 entities:

section

/**  * @var integer  *  * @orm\column(name="id", type="integer")  * @orm\id  * @orm\generatedvalue(strategy="auto")  */ private $id;  /**  * @var string  *  * @orm\column(name="name", type="string", length=255, nullable=false)  */ private $name;  /**  * @orm\onetomany(targetentity="my\sitebundle\entity\course", mappedby="section", cascade={"persist"})  */ private $courses; 

course

/**  * @var integer  *  * @orm\column(name="id", type="integer")  * @orm\id  * @orm\generatedvalue(strategy="auto")  */ private $id;  /**  * @var string  *  * @orm\column(name="name", type="string", length=255)  */ private $name;  /**  * @orm\manytoone(targetentity="my\sitebundle\entity\section", inversedby="courses")  * @orm\joincolumn(nullable=false)  */ private $section; 

now, i'd able retrieve linked 'course' objects section , iterate on them in twig template. time being, haven't been able so, i've created prototype concatenate courses names , ids string in section's repository using query builder, , parse concatenations in twig template such:

sectionrepository

/**  * @return \doctrine\orm\querybuilder  */ public function getgridquerybuilder() {     $qb = $this->createquerybuilder('s');     $qb         ->select('s, groupconcat(c.name separator \'|\') courses, groupconcat(c.id separator \'|\') coursesid')         ->leftjoin('s.courses', 'c')         ->groupby('s.id')         ->orderby('s.name');      return $qb; } 

sectioncontroller

(the 'dummy[coursesnames]' field allows me perform search on courses names)

public function indexaction(request $request) {     $qb = $this->getrepository('mysitebundle:section')->getgridquerybuilder();      // grid config     $gridconfig = new gridconfig();     $gridconfig         ->setname('sectionslist')         ->setquerybuilder($qb)         ->setcountfieldname('s.id')         ->addfield(new field('s.name',['label'=>'section name', 'filterable'=>true]))         ->addfield(new field('c.name', ['label'=>'dummy[coursesnames]', 'filterable'=>true, 'visible'=>false]));      // paginator config     $this->setgridpaginator($gridconfig, 5);      return $this->render('mysitebundle:section:index.html.twig', ['grid' => $this->getgrid($gridconfig, $request)]); } 

section twig template

what have:

{% embed kitpages_data_grid.grid.default_twig {'grid': grid} %}  {% block kit_grid_thead_column %}     <th>courses list</th> {% endblock %}  {% block kit_grid_tbody_column %}     {% set courses = item['courses']|split('|') %}     {% set coursesid = item['coursesid']|split('|') %}      <!-- courses -->     <td>         {% course in courses %}             {% if not course empty %}                 <a href="{{ path ("viewcourse", {"id": coursesid[loop.index0] }) }}" ><span class="label label-primary">{{ course }}</span></a>             {% else %}                 (no results)             {% endif %}          {% endfor %}     </td>  {% endblock %}  {% endembed %} 

what i'd able do:

{% embed kitpages_data_grid.grid.default_twig {'grid': grid} %}  {% block kit_grid_thead_column %}     <th>courses list</th> {% endblock %}  {% block kit_grid_tbody_column %}      <!-- courses -->     <td>          {# here using section object #}          {% course in section.courses %}             <a href="{{ path ("viewcourse", {"id": course.id }) }}" ><span class="label label-primary">{{ course.name }}</span></a>         {% endfor %}     </td>  {% endblock %}  {% endembed %} 

even though prototype works well, not parsing stuff @ all, , far prefer working section objects.

i've tried like

{{ item['s'].name }} 

in template received error message: key "s" array keys "s.id, s.name, courses, coursesid" not exist , although did "select('s')" in query builder.

i don't know if i'd possible. otherwise, considering dropping kitpages stuff , build tables myself in templates.

thank you!

i figured out wanted not possible believe that, kitpages datagrid using querybuilder, not able retrieve entities without having change bundle logic. therefore reverted entities sent twig, , iterated on attributes in table.


Comments