Hey Guys,
I can't figure out how I can add parenthesis to generate a statement like
one below in ZF2:
*EXAMPLE1:* SELECT "persons".* FROM "persons" WHERE *(*"givenName" LIKE
'%john%' OR "surname" LIKE '%john%' OR "givenName" LIKE '%doe%' OR "surname"
LIKE '%doe%'*)* AND active = 1 ORDER BY "surname" ASC LIMIT '2' OFFSET '0'
The code below generates the following sql statement:
*
EXAMPLE2:* SELECT "persons".* FROM "persons" WHERE "givenName" LIKE '%john%'
OR "surname" LIKE '%john%' OR "givenName" LIKE '%doe%' OR "surname" LIKE
'%doe%' AND active = 1 ORDER BY "surname" ASC LIMIT '2' OFFSET '0'
$spec = function (Where $where) use ($keywords) {
foreach( $keywords as $value ) {
$where->like('givenName',"%$value%");
$where->OR;
$where->like('surname',"%$value%");
$where->OR;
}
};
$select->where($spec);
$select->where('active = 1');
$select->order('surname ASC');
$select->offset($start);
$select->limit($count);
On this one I can't figure out how I can insert "(...)" in between
I've tried to add nest but it just creates "()" in between conditions.
I have also tried the following code but it generates this SQL:
*EXAMPLE3:* SELECT "persons".* FROM "persons" WHERE ("givenName" LIKE
'%john%' *AND* "surname" LIKE '%john%' *AND* "givenName" LIKE '%doe%' *AND*
"surname" LIKE '%doe%') *AND OR* AND active = 1 ORDER BY "surname" ASC LIMIT
'2' OFFSET '0'
$predicates = array();
foreach( $keywords as $value ) {
$predicates[] = new Predicate\Like('givenName',"%$value%");
$predicates[] = new Predicate\Like('surname',"%$value%");
}
$select->where(array(
new Predicate\PredicateSet($predicates),
Predicate\PredicateSet::OP_OR
));
$select->where('active = 1');
$select->order('surname ASC');
$select->offset($start);
$select->limit($count);
On this one I can't figure out how I can change "AND" to "OR" in between
(...) and eliminate the "AND OR"
Anyone have insights?
--
View this message in context:
http://zend-framework-community.634137.n4.nabble.com/Help-using-predicate-and-nesting-conditions-tp4659776.html
Sent from the Zend Framework mailing list archive at Nabble.com.
--
List: [email protected]
Info: http://framework.zend.com/archives
Unsubscribe: [email protected]