1. Go to this page and download the library: Download survos/api-grid-bundle 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/ */
survos / api-grid-bundle example snippets
// src/Entity/Video.php
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\ApiFilter;
use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;
use Survos\ApiGridBundle\Api\Filter\MultiFieldSearchFilter;
use Survos\ApiGridBundle\Api\Filter\FacetsFieldSearchFilter;
#[ApiResource]
#[GetCollection(name: self::COLLECTION_ROUTE)]
#[ApiFilter(OrderFilter::class, properties: ['title', 'year'])]
#[ApiFilter(MultiFieldSearchFilter::class, properties: ['title', 'description'])]
#[ApiFilter(FacetsFieldSearchFilter::class, properties: ['genre', 'status'])]
class Video
{
public const COLLECTION_ROUTE = 'api-video';
// ...
}
// src/Controller/VideoController.php
use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Metadata\IriConverterInterface;
use App\Entity\Video;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class VideoController extends AbstractController
{
#[Route('/videos', name: 'app_video_browse')]
public function browse(IriConverterInterface $iriConverter): Response
{
return $this->render('video/browse.html.twig', [
'class' => Video::class,
'apiGetCollectionUrl' => $iriConverter->getIriFromResource(
Video::class,
operation: new GetCollection(name: Video::COLLECTION_ROUTE)
),
]);
}
}
use Survos\FieldBundle\Attribute\Field;
use Survos\FieldBundle\Enum\Widget;
class Video
{
#[Field(searchable: true, sortable: true)]
public string $title;
#[Field(sortable: true)]
public int $year;
#[Field(filterable: true, widget: Widget::Select)]
public string $genre;
#[Field(filterable: true, widget: Widget::Boolean)]
public bool $published;
}
use Survos\CoreBundle\Traits\QueryBuilderHelperInterface;
use Survos\CoreBundle\Traits\QueryBuilderHelperTrait;
class VideoRepository extends ServiceEntityRepository implements QueryBuilderHelperInterface
{
use QueryBuilderHelperTrait;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.