Je ne suis pas un utilisateur de Knex.js, mais en regardant la documentation, il semble que l'utilisation par Knex de la syntaxe d'objet JavaScript pour définir les prédicats est la façon dont il réalise le paramétrage.
Cependant, comme vous utilisez des fonctions intégrées, vous devez utiliser whereRaw
.
En regardant les docs ( http://knexjs.org/#Builder-whereRaw ) et ( http://knexjs.org/#Raw-Bindings ) Je pense que vous voulez faire ceci :
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex n'a pas de orWhereRaw
, vous devez donc utiliser la version longue si vous souhaitez séparer logiquement les prédicats :
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Remarque ?
est pour les paramètres positionnels, et :term
est pour les paramètres nommés.