2015-12-04 4 views
0

У меня проблемы с запуском простого фильтра, используя LIKE выражения, utiliando параметров фильтра, следовать моему кодуКак фильтр не работает с tableGateway ZF2

public function returnsrows($name){ 

    $resultSet = $this->tableGateway->select(function (Select $select){ 
     $select->where->like('artist', '%'.$name.'%');; 
     //$select->where("artist like '%'.$name.'%' "); 
     $select->order('title ') ; 

     //var_dump($resultSet); 
    }); 

    var_dump($resultSet); 
    return $resultSet; 
} 

возвращение всегда пустой и не запускать фильтр , ниже возврата var_dump:

object(Zend\Db\ResultSet\ResultSet)[288] 
protected 'allowedReturnTypes' => 
    array (size=2) 
     0 => string 'arrayobject' (length=11) 
     1 => string 'array' (length=5) 
protected 'arrayObjectPrototype' => 
    object(Album\Model\Album)[258] 
     public 'id' => null 
     public 'artist' => null 
     public 'title' => null 
protected 'returnType' => string 'arrayobject' (length=11) 
protected 'buffer' => null 
protected 'count' => int 5 
protected 'dataSource' => 
    object(Zend\Db\Adapter\Driver\Pdo\Result)[287] 
     protected 'statementMode' => string 'forward' (length=7) 
     protected 'fetchMode' => int 2 
     protected 'resource' => 
     object(PDOStatement)[286] 
      **public 'queryString' => string 'SELECT "album".* FROM "album" WHERE "artist" LIKE :where1 ORDER BY "title" ASC' (length=78)** 
     protected 'options' => null 
     protected 'currentComplete' => boolean false 
     protected 'currentData' => null 
     protected 'position' => int -1 
     protected 'generatedValue' => null 
     protected 'rowCount' => int 5 
    protected 'fieldCount' => int 3 
    protected 'position' => int 0 

можно запустить фильтр таким образом?

выбрать поле1, field2 из таблица где field1 нравится? или ? = «» «», $ Param1

Я благодарю уже сотрудники пытались довольно ответ, но не нашли Танки

ответ

0

Имейте в виду, что у вас есть опечатка двойной ;;

$select->where->like('artist', '%'.$nome.'%');; 

И если concatination делает вас проблемой пытаются использовать функцию

CONCAT('%',$nome,'%'); 
+0

Привет спасибо за ответы, сделать это таким образом? $ select-> where-> like ('artist', CONCAT ('%', $ nome, '%')); –

+0

таким образом дал ошибку, выражение CONCAT SQL правильно? а не PHP –

+0

Вы проверили документацию по zf2 надлежащего способа использования CONCAT? – Standej