我根据教程使用 Zf2 组装了一个小型应用程序,我想从数据库中获取数据,但我不得不面对一个奇怪的问题。
我的 TableGateway 类中有这个方法:
public function selectWith($select = null) {
$filter = new Predicate();
$filter->like('category_name',"%dess%")
->OR
->like('category_desc', "%ks%");
var_dump($this->tableGateway->select(function(Select $select) use ($filter) {
$select->where($filter);
}));
return $this->tableGateway->select(function(Select $select) use ($filter) {
$select->where($filter);
});
}
根据转储,执行了以下查询:
SELECT `categories`.* FROM `categories` WHERE (`category_name` LIKE :where1 OR `category_desc` LIKE :where2)
而不是应该由源代码形式化的:
SELECT `categories`.* FROM `categories` WHERE (`category_name` LIKE '%dess%' OR `category_desc` LIKE '%ks%')
这是一个错误,还是我做错了什么?
根据API, Like 只接受两个参数,都是字符串。
我使用采埃孚 2.2.2
提前感谢您的帮助!