ZF2 Как илиWhere ()

Я пытаюсь выяснить, как сделать Mysql Select с помощью OR в where Clause. По умолчанию все предложения, в которых оператор AND, и после нескольких часов попыток и сбоев, и просмотр сети не могут заставить его работать. В ZF1 это будет orWhere (), но нет в ZF2.

Это код, который у меня есть в AbstracttableGateway :

 $resultSet = $this->select(function (Select $select) use ($searchstring) { $select->join('users','blog_posts.id_user = users.id',array('name')) ->join('blog_categories','blog_posts.id_category = blog_categories.id', array( 'cat_name' => 'name', 'cat_alias' => 'alias', 'cat_image' => 'icon')) ->order('date DESC'); //->where("title LIKE '%" .$searchstring . "%' OR content LIKE '%". $searchstring ."%'") $select->where->like('content','%'.$searchstring.'%'); $select->where->like('title','%'.$searchstring.'%'); } ); return $resultSet; 

строки с $select->where->like на те, которые являются ANDed, и я хочу их с OR. Что я должен изменить?

Related of "ZF2 Как илиWhere ()"

В orWhere нет orWhere , но вы можете использовать любую комбинацию объектов Zend\Db\Sql\Predicate . Для ИЛИ используйте 2 предиката в PredicateSet с PredicateSet::COMBINED_BY_OR .

Для него документации не так много, но теперь вы можете просмотреть источник – пока.

Изменить : образец

 use Zend\Db\Sql\Predicate; $select->where(array( // ... new Predicate\PredicateSet( array( new Predicate\Like('content', '%'.$searchstring.'%'), new Predicate\Like('title', '%'.$searchstring.'%'), ), Predicate\PredicateSet::COMBINED_BY_OR ), // ... )); 

или облако:

 $select->where ->like('content','%'.$searchstring.'%') ->or ->like('title','%'.$searchstring.'%');