チュートリアルに基づいて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 つのパラメーターのみを受け入れます。どちらも文字列です。
ZF 2.2.2 を使用しています
事前に助けてくれてありがとう!