mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-05 20:57:12 +00:00
added order filtering.
This commit is contained in:
parent
b65011adaf
commit
933d0d1a01
4 changed files with 26 additions and 2 deletions
|
|
@ -31,8 +31,9 @@ class OrderController extends ContainerAware
|
|||
$orderManager = $this->container->get('sylius_sales.manager.order');
|
||||
|
||||
$orderSorter = $this->container->get('sylius_sales.sorter.order');
|
||||
$orderFilter = $this->container->get('sylius_sales.filter.order');
|
||||
|
||||
$paginator = $orderManager->createPaginator($orderSorter);
|
||||
$paginator = $orderManager->createPaginator($orderSorter, $orderFilter);
|
||||
$paginator->setCurrentPage($this->container->get('request')->query->get('page', 1));
|
||||
|
||||
$orders = $paginator->getCurrentPageResults();
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
|
||||
namespace Sylius\Bundle\SalesBundle\Entity;
|
||||
|
||||
use Sylius\Bundle\SalesBundle\Filtering\FilterInterface;
|
||||
|
||||
use Sylius\Bundle\SalesBundle\Sorting\SorterInterface;
|
||||
|
||||
use Sylius\Bundle\SalesBundle\Model\OrderInterface;
|
||||
|
|
@ -62,13 +64,17 @@ class OrderManager extends BaseOrderManager
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function createPaginator(SorterInterface $sorter = null)
|
||||
public function createPaginator(SorterInterface $sorter = null, FilterInterface $filter = null)
|
||||
{
|
||||
$queryBuilder = $this->entityManager->createQueryBuilder()
|
||||
->select('o')
|
||||
->from($this->class, 'o')
|
||||
->orderBy('o.createdAt', 'DESC');
|
||||
|
||||
if (null != $filter) {
|
||||
$filter->filter($queryBuilder);
|
||||
}
|
||||
|
||||
if (null != $sorter) {
|
||||
$sorter->sort($queryBuilder);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
|
||||
namespace Sylius\Bundle\SalesBundle\Model;
|
||||
|
||||
use Sylius\Bundle\SalesBundle\Filtering\FilterInterface;
|
||||
use Sylius\Bundle\SalesBundle\Sorting\SorterInterface;
|
||||
|
||||
/**
|
||||
* Order manager interface.
|
||||
*
|
||||
|
|
@ -24,6 +27,11 @@ interface OrderManagerInterface
|
|||
* @return OrderInterface
|
||||
*/
|
||||
function createOrder();
|
||||
|
||||
/**
|
||||
* Creates paginator.
|
||||
*/
|
||||
function createPaginator(SorterInterface $sorter = null, FilterInterface $filter = null);
|
||||
|
||||
/**
|
||||
* Persist order.
|
||||
|
|
|
|||
|
|
@ -9,9 +9,11 @@
|
|||
<parameter key="sylius_sales.manager.item.class">Sylius\Bundle\SalesBundle\Entity\ItemManager</parameter>
|
||||
<parameter key="sylius_sales.manager.status.class">Sylius\Bundle\SalesBundle\Model\StatusManager</parameter>
|
||||
<parameter key="sylius_sales.sorter.order.class">Sylius\Bundle\SalesBundle\Sorting\ORM\OrderSorter</parameter>
|
||||
<parameter key="sylius_sales.filter.order.class">Sylius\Bundle\SalesBundle\Filtering\ORM\OrderFilter</parameter>
|
||||
</parameters>
|
||||
|
||||
<services>
|
||||
<!-- managers... -->
|
||||
<service id="sylius_sales.manager.order" class="%sylius_sales.manager.order.class%">
|
||||
<argument type="service" id="doctrine.orm.default_entity_manager" />
|
||||
<argument>%sylius_sales.model.order.class%</argument>
|
||||
|
|
@ -31,6 +33,13 @@
|
|||
<argument type="service" id="service_container" />
|
||||
</call>
|
||||
</service>
|
||||
|
||||
<!-- filters... -->
|
||||
<service id="sylius_sales.filter.order" class="%sylius_sales.filter.order.class%">
|
||||
<call method="setContainer">
|
||||
<argument type="service" id="service_container" />
|
||||
</call>
|
||||
</service>
|
||||
</services>
|
||||
|
||||
</container>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue