-
Notifications
You must be signed in to change notification settings - Fork 2
Doctrine ArrayCollection
Symftony edited this page Dec 10, 2017
·
1 revision
/!\ ArrayCollection doesn't support not and
not or
xor
contains
not contains
These not supported operator was not allowed to use and the parser will throw UnsupportedTokenTypeException
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\Common\Collections\ExpressionBuilder;
use Symftony\Xpression\Bridge\Doctrine\Common\ExpressionBuilderAdapter;
use Symftony\Xpression\Parser;
QueryStringParser::correctServerQueryString();
$products = new ArrayCollection(
array(
array('id' => 1, 'title' => 'banana', 'price' => 2, 'quantity' => 5, 'category' => 'food'),
array('id' => 2, 'title' => 'banana', 'price' => 5, 'quantity' => 15, 'category' => 'food'),
array('id' => 3, 'title' => 'apple', 'price' => 1, 'quantity' => 1, 'category' => 'food'),
array('id' => 4, 'title' => 'TV', 'price' => 399, 'quantity' => 1, 'category' => 'multimedia'),
)
);
$parser = new Parser(new ExpressionBuilderAdapter(new ExpressionBuilder()));
$expression = $parser->parse($_GET['query']);
$filteredProducts = $products->matching(new Criteria($expression));