2017-05-25 1 views
0

J'essaie de trouver un moyen d'exécuter une requête de recherche en utilisant adonis.js mais je ne peux pas trouver un moyen de le faire avec Lucid ORM ...Adonis.js requêtes de recherche

J'utilise actuellement cette , mais il est clairement pas la bonne façon de faire une requête de recherche:

let posts = yield Post.query().with('category').where({ 
    title: request.input('term') 
}).forPage(1, 10).fetch() 

Comment puis-je exécuter directement Postgres requêtes SQL en utilisant le framework de adonis.js?

SELECT id FROM posts WHERE content LIKE '%searchterm%' OR WHERE tags LIKE '%searchterm%' OR WHERE title LIKE '%searchterm%' 

Nous vous remercions à l'avance

+0

Quel est le point d'utiliser tous ceux de fantaisie ORM-s et de demander une exécution requête brute en même temps? –

Répondre

2

trouvé la solution pour exécuter directement des requêtes SQL dans Adonis avec Database.schema.raw(execute queries here), donc:

const postQuery = yield Database.schema.raw('SELECT * FROM posts'); 
const posts = postQuery.rows 
console.log(posts); 

Modifier 1
Pour effectuer une requête de recherche avec Lucid ORM:

const term = request.input('term'); 
yield Database.select('*').from('posts').where('title', 'LIKE', '%'+term+'%') 
console.log(posts); 

Edit 2
Encore mieux requête brute:

yield Database.select('*').from('posts').whereRaw('title @@ :term OR description @@ :term', {term: '%'+term+'%'})