Skip to content

Commit 02f54d8

Browse files
Merge pull request #1 from Dunoyer/patch-3
Add Propel2QueryFilter
2 parents 0779390 + 0eab292 commit 02f54d8

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

QueryFilter/Propel2QueryFilter

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
namespace Admingenerator\GeneratorBundle\QueryFilter;
4+
5+
use Propel\Runtime\ActiveQuery\Criteria;
6+
use Doctrine\Common\Util\Inflector;
7+
8+
class Propel2QueryFilter extends PropelQueryFilter
9+
{
10+
11+
public function addDefaultFilter($field, $value, $criteria = null)
12+
{
13+
list($query, $filteredField) = $this->addTablePathToField($field);
14+
15+
if (!is_array($value)) {
16+
$method = 'filterBy'.Inflector::classify($filteredField);
17+
$query->$method($value, $criteria);
18+
} elseif (count($value) > 0) {
19+
$query->filterBy($filteredField, $value, Criteria::IN);
20+
}
21+
}
22+
23+
public function addBooleanFilter($field, $value)
24+
{
25+
if ("" !== $value) {
26+
$this->addDefaultFilter($field, $value);
27+
}
28+
}
29+
30+
public function addVarcharFilter($field, $value)
31+
{
32+
$this->addDefaultFilter($field, '%'.$value.'%', Criteria::LIKE);
33+
}
34+
35+
}

Resources/config/propel2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<!-- Propel -->
77
<parameter key="admingenerator.propel2.class">Admingenerator\GeneratorBundle\Generator\PropelGenerator</parameter>
88
<parameter key="admingenerator.fieldguesser.propel2.class">Admingenerator\GeneratorBundle\Guesser\Propel2ORMFieldGuesser</parameter>
9-
<parameter key="admingenerator.queryfilter.propel2.class">Admingenerator\GeneratorBundle\QueryFilter\PropelQueryFilter</parameter>
9+
<parameter key="admingenerator.queryfilter.propel2.class">Admingenerator\GeneratorBundle\QueryFilter\Propel2QueryFilter</parameter>
1010
</parameters>
1111

1212
<services>

0 commit comments

Comments
 (0)