2017-09-23 3 views
0

Je reçois une variable dans mon contrôleur et je veux faire une requête de liaison avec la variable de recherche, j'essaie ceci:passage variable dans des conditions de trouver la méthode() dans Phalcon cadre

$search = $this->request->getPost('term'); 

        $item = Item::find(
          [ 
            'columns' => 'name', 
            'conditions' => "name LIKE :searchT: ", 
            'bind' => [ 
              'searchT' => '%'.$search.'%', 
            ], 
          ] 
          ); 

Ce code ci-dessus renvoie des éléments qui ne correspondent pas à la restriction LIKE.

Si je passe la chaîne fonctionne littéralement bien:

$item = Item::find(
          [ 
            'conditions' => "name LIKE '%Os%' ", 
            'columns' => 'name', 
            'limit' => 10, 
          ] 
          ); 

JQuery:

<script type="text/javascript"> 
$(function() { 
    $("#itemSearch").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       url: "/item/search", 
       dataType: "json", 
       data: { 
        term: request.term  
       }, 
       contentType: "application/json", 
       success: function(data) { 
        response(data); 
       } 
      }); 
     }, 
     minLength: 2 
    }) 
}) 
</script> 
+0

'LIKE: searchT:" 'supprime l'espace et vérifie si ta variable' $ search' contient de la valeur? –

+0

Salut, je teste maintenant et est-ce, maintenant je fais maintenant pourquoi $ this-> request-> getPost ne reçoit pas les données, j'envoie le message d'un JQuery. – malin

Répondre

0

Ma recherche $ était vide et dans mon JQuery je devais ajouter un en-tête en ajax:

... 
source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       headers: { 
        'Content-Type': 'application/x-www-form-urlencoded' 
       }, 
... 

Merci @Abhik Chakraborty