zf2 \Zend\Db\Sql\Sql using predicate in where condition

php, zend-db, zend-framework2

Solution

I've solved the problem by viewing the source code of `zf2`

If you know how to do it, it is really easy, the code above was almost right!

Instead of

$predicate = new Zend\Db\Sql\Predicate\Predicate();

you have to use

$predicate = new  \Zend\Db\Sql\Where();

it is an empty derived class, that is used in Zend\Db\Sql\Sql

this is the complete working example:

$sql->select()
    ->columns(array('GroupedColum'
        ,'minValue' => new Expression('min(ValueColumn)')))
    ->from('ValueTable')
    ->group('GroupedColum')
    ->order('minValue')
    ->order('GroupedColum')
    ->limit(10);
$predicate = new  \Zend\Db\Sql\Where();
$sql->where($predicate->greaterThan('filterColumn','20'));

Problem

i really don't get the point how to use predicates in zend framework 2. this is what i got: ``` $sql->select() ->columns(array('GroupedColum' ,'minValue' => new Expression('min(ValueColumn)'))) ->from('ValueTable') ->group('GroupedColum') ->order('minValue') ->order('GroupedColum') ->limit(10); ``` this is working fine now i want to apply somethin like that: ``` $predicate = new Zend\Db\Sql\Predicate\Predicate(); $sql->where($predicate->greaterThan('filterColumn','20); ``` this is what i tried, it throws no error, but it is not working :-( This is what i expect as SQL: ``` select GroupedColum , min(ValueColumn) as minValue from ValueTable where filterColumn > 20 group by GroupedColum order by minValue GroupedColum limit 10; ```

Original source