diff --git a/src/DataTables/Column/EntityColumn.php b/src/DataTables/Column/EntityColumn.php new file mode 100644 index 00000000..517fb753 --- /dev/null +++ b/src/DataTables/Column/EntityColumn.php @@ -0,0 +1,65 @@ +setRequired('property'); + + $resolver->setDefault('field', function (Options $option) { + return $option['property'] . '.name'; + }); + } +} \ No newline at end of file diff --git a/src/DataTables/PartsDataTable.php b/src/DataTables/PartsDataTable.php index 9a7ecda8..ecdcfe5c 100644 --- a/src/DataTables/PartsDataTable.php +++ b/src/DataTables/PartsDataTable.php @@ -29,6 +29,7 @@ namespace App\DataTables; +use App\DataTables\Column\EntityColumn; use App\DataTables\Column\LocaleDateTimeColumn; use App\Entity\Parts\Category; use App\Entity\Parts\Part; @@ -114,16 +115,16 @@ class PartsDataTable implements DataTableTypeInterface ->add('description', TextColumn::class, [ 'label' => $this->translator->trans('part.table.description'), ]) - ->add('category', TextColumn::class, [ - 'field' => 'category.name', - 'label' => $this->translator->trans('part.table.category') + ->add('category', EntityColumn::class, [ + 'label' => $this->translator->trans('part.table.category'), + 'property' => 'category' ]) - ->add('footprint', TextColumn::class, [ - 'field' => 'footprint.name', + ->add('footprint', EntityColumn::class, [ + 'property' => 'footprint', 'label' => $this->translator->trans('part.table.footprint') ]) - ->add('manufacturer', TextColumn::class, [ - 'field' => 'manufacturer.name', + ->add('manufacturer', EntityColumn::class, [ + 'property' => 'manufacturer', 'label' => $this->translator->trans('part.table.manufacturer') ]) //->add('footprint', TextColumn::class, ['field' => 'footprint.name'])