Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Crud Bundle Laravel Package

ecommit/crud-bundle

View on GitHub
Deep Wiki
Context7

Création manuelle du paginator

Par défaut, un paginator Ecommit\DoctrineUtils\Paginator\AbstractDoctrinePaginator est automatiquement créé. Le comportement par défaut peut être modifié par la méthode setBuildPaginator.

Exemple 1 - Options de génération :

<?php
//src/Controller/MyCrudController
namespace App\Controller;

//...

class MyCrudController extends AbstractCrudController
{
    protected getCrudOptions(): array
    {
        //...
        
        $crudConfig = $this->createCrudConfig('my_crud'); //Passé en argument: Nom du CRUD
        $crudConfig->addColumn(['id' => 'id', 'alias' => 'c1.id', 'label' => 'Id'])
            //...
            ->setRoute('my_crud_ajax')
+           ->setBuildPaginator([
+               //Options de Ecommit\DoctrineUtils\Paginator\DoctrinePaginatorBuilder::createDoctrinePaginator
+               'by_identifier' => 'c1.id',
+               'count' => [
+                   'behavior' => 'count_by_alias',
+                   'alias' => 'c1.id',
+               ],
+           ])
            //...

        return $crudConfig->getOptions();
    }

    //...
}

Exemple 2 - Création manuelle du paginator :

<?php
//src/Controller/MyCrudController
namespace App\Controller;

+ use Ecommit\DoctrineUtils\Paginator\DoctrineORMPaginator;

//...

class MyCrudController extends AbstractCrudController
{
    protected function getCrudOptions(): array
    {
        //...
        
        $crudConfig = $this->createCrudConfig('my_crud'); //Passé en argument: Nom du CRUD
        $crudConfig->addColumn(['id' => 'id', 'alias' => 'c1.id', 'label' => 'Id'])
            //...
            ->setRoute('my_crud_ajax')
+           ->setBuildPaginator(function ($queryBuilder, $page, $resultsPerPage) {
+               $queryBuilder->andWhere('c1.active = 1');
+               $paginator = new DoctrineORMPaginator([
+                   'query_builder' => $queryBuilder,
+                   'page' => $page,
+                   'max_per_page' => $resultsPerPage,
+               ]);
+
+               return $paginator;
+           })
            //...

        return $crudConfig->getOptions();
    }

    //...
}
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
ecotone/kafka
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata