PHP code example of sherlockode / sonata-sortable-bundle
1. Go to this page and download the library: Download sherlockode/sonata-sortable-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/ */
sherlockode / sonata-sortable-bundle example snippets
// config/bundles.php
return [
// ...
Sherlockode\SonataSortableBundle\SherlockodeSonataSortableBundle::class => ['all' => true],
];
// src/Entity/Category.php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Table(name="category")
* @ORM\Entity
*/
class Category
{
/**
* @var int
*
* @Gedmo\SortablePosition
* @ORM\Column(name="position", type="integer")
*/
private $position;
}
// src/Admin/CategoryAdmin.php
namespace App\Admin;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Route\RouteCollectionInterface;
class CategoryAdmin extends AbstractAdmin
{
// ...
/**
* @param RouteCollectionInterface $collection
*
* @return void
*/
protected function configureRoutes(RouteCollectionInterface $collection): void
{
$collection->add('move', $this->getRouterIdParameter().'/move/{direction}');
}
}
// src/Admin/CategoryAdmin.php
namespace App\Admin;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\DatagridInterface;
class CategoryAdmin extends AbstractAdmin
{
// ...
protected function configureDefaultSortValues(array &$sortValues): void
{
$sortValues[DatagridInterface::PAGE] = 1;
$sortValues[DatagridInterface::SORT_ORDER] = 'ASC';
$sortValues[DatagridInterface::SORT_BY] = 'position';
}
}
// src/Admin/CategoryAdmin.php
namespace App\Admin;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\ListMapper;
class CategoryAdmin extends AbstractAdmin
{
// ...
/**
* @inheritDoc
*/
protected function configureListFields(ListMapper $list): void
{
$list
// your other fields
->add(ListMapper::NAME_ACTIONS, null, [
'actions' => [
'move' => [
'template' => '@SherlockodeSonataSortable/list__action_move.html.twig',
],
],
])
;
}
}