urlGenerator = $urlGenerator; } /** * @param DataTable $dataTable * @param array $options */ public function configure(DataTable $dataTable, array $options) { $dataTable//->add("id", TextColumn::class) ->add("name", TextColumn::class, ['label' => 'name.label', 'render' => function($value, Part $context) { return $this->urlGenerator->infoHTML($context); }]) ->add("description", TextColumn::class, ['label' => 'description.label']) ->add("category", TextColumn::class, ['field' => 'category.name', 'label' => 'category.label']) ->add("instock", TextColumn::class, ['label' => 'instock.label_short']) ->add("mininstock", TextColumn::class, ['label' => 'mininstock.label_short']) ->add("storelocation", TextColumn::class, ['field' => 'storelocation.name', 'label' => 'storelocation.label']) ->addOrderBy('name') ->createAdapter(ORMAdapter::class, [ 'entity' => Part::class, 'criteria' => [ function (QueryBuilder $builder) use($options) { if(isset($options['cid'])) { $builder->andWhere('part.category = :cid') ->setParameter('cid', $options['cid']); } }, new SearchCriteriaProvider() ] ]); } }