PHP code example of loic425 / sylius-grid-builder

1. Go to this page and download the library: Download loic425/sylius-grid-builder library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

loic425 / sylius-grid-builder example snippets




// config/sylius/grids/book.php

use App\Entity\Author;
use App\Entity\Book;
use App\Entity\Nationality;
use SyliusGridBuilder\Field;
use SyliusGridBuilder\Filter;
use SyliusGridBuilder\GridBuilder;
use SyliusGridBuilder\GridConfig;

return static function (GridConfig $grid) {
    $grid->addGrid(GridBuilder::create('app_book', Book::class)
        ->addFilter(Filter::create('title', 'string'))
        ->addFilter(Filter::create('author', 'entity')
            ->setFormOptions([
                'class' => Author::class,
                'multiple' => true,
            ])
        )
        ->addFilter(Filter::create('nationality', 'entity')
            ->setOptions([
                'fields' => ['author.nationality'],
            ])
            ->setFormOptions([
                'class' => Nationality::class,
            ])
        )
        ->addFilter(Filter::create('currencyCode', 'string')
            ->setOptions([
                'fields' => ['price.currencyCode'],
            ])
        )
        ->addFilter(Filter::create('state', 'select')
            ->setFormOptions([
                'multiple' => true,
                'choices' => [
                    'initial' => 'initial',
                    'published' => 'published',
                    'unpublished' => 'unpublished',
                ],
            ])
        )
        ->orderBy('title', 'asc')
        ->addField(Field::create('title', 'string')
            ->setLabel('Title')
            ->setSortable(true)
        )
        ->addField(Field::create('author', 'string')
            ->setLabel('Author')
            ->setPath('author.name')
            ->setSortable(true, 'author.name')
        )
        ->addField(Field::create('nationality', 'string')
            ->setLabel('Nationality')
            ->setPath('author.nationality.name')
            ->setSortable(true, 'author.nationality.name')
        )
        ->setLimits([10, 5, 15])
        ->addCreateAction()
        ->addUpdateAction()
        ->addDeleteAction()
        ->addDeleteAction([], 'bulk')
    );
};

yaml
# config/services.yaml
imports:
    - { resource: "sylius/grids/**.php" }