我正在构建一个函数,该函数将一组参数转换为Zend \ Db \ Sql \ Predicate \ Predicate以传递给select语句。我已经成功地将一系列列和术语转换为“和喜欢的”查询,
$p = new Predicate();
foreach ($columns as $index => $value) {
$predicate->and->like($columns[$index], '%' . $terms[$index] . '%');
}
产生
WHERE column LIKE %term% AND column2 LIKE %term2%
我的问题是如何在不使用LIKE的情况下执行此操作,所以假设的代码应该是
$p = new Predicate();
foreach ($columns as $index => $value) {
$predicate->and($columns[$index], $terms[$index]);
}
生产
WHERE column = term AND column2 = term2
我浏览了Predicate的文档,但没有找到解决方案。上面显示的代码错误为“调用未定义方法Zend \ Db \ Sql \ Predicate \ Predicate :: and()”
在其他查询功能中,我已经成功使用
$select->where(array($columnName => $columnVal));
是否有办法创建相同的效果,但将其附加到较大的Predicate语句上?感谢您的阅读,不胜感激!