witte / sy-datagrid
Symfony DataGrid
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=8.2
- doctrine/orm: ^2.0 || ^3.0
- symfony/asset: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/dependency-injection: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/framework-bundle: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/twig-bundle: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/ux-icons: ^2.0
- symfony/ux-twig-component: ^2.0
- symfony/yaml: ^4.4 || ^5.0 || ^6.0 || ^7.0
Conflicts
This package is not auto-updated.
Last update: 2025-06-02 07:23:44 UTC
README
User factory
namespace Witte\SyDatagrid\Factory; use Witte\SyDatagrid\Entity\User; use Witte\SyDatagrid\Witte\SyDatagrid\\SyDataGrid; use Witte\SyDatagrid\Witte\SyDatagrid\\SyDataGridFactory; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; class UserFactory { public function __construct( private EntityManagerInterface $em, private UrlGeneratorInterface $urlGenerator, private SyDataGridFactory $gridFactory, ) { } public function createTable(): SyDataGrid { $dg = $this->gridFactory->create( $this->em->getRepository(User::class)->createQueryBuilder('u'), $this->urlGenerator->generate('example') ); $dg->addColumn('id', 'Id'); $dg->addColumn('name', 'Name'); $dg->addColumn('type', 'Type'); return $dg; } }
Controller
namespace Witte\SyDatagrid\Controller; use Witte\SyDatagrid\Factory\UserFactory; use Witte\SyDatagrid\Factory\SyDataGridFactory; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; class ExampleController extends AbstractController { public function __construct( private UserFactory $userFactory, private SyDataGridFactory $gridFactory ) { } #[Route('/', name: 'example')] public function init(Request $request) { $dg = $this->userFactory->createTable(); if ($request->isXmlHttpRequest()) { return $this->json($this->gridFactory->refresh($dg, $request)); } return $this->render('index.html.twig', [ 'grid' => $dg ]); } }
Template
<twig:SyDataGrid grid="{{grid}}"/>