-1
I pass this query:
const filter = request.input('filter')
const queryBookQuestions = BookUnitQuestion
.query()
.with('book_unit')
.with('user')
.with('book', (builder) => {
builder.where('id', request.params.id)
})
In this query I return all the books of a book unit with the object book_unit
related to it, the user and bring only the questions of the book that receive as parameter (book.params.id)
Now I need to filter the questions by units. I have this filter that works correctly looking for the description of the question:
if(filter){
if(filter.search("description") !== -1){
let description = filter.match(/(?<=description~contains~').*?(?=')/)
queryBookQuestions.where('description', 'ilike', '%'+description[0]+'%')
}
This filter works well because I believe it is applied directly in the model BookUnitQuestion
. But now, I need to filter the Unit, which is a relationship, that is, I need to return the questions that have only in the unit that I filter. I tried something like:
if(filter.search("unit") !== -1){
let unit = request.input('filter').match(/(?<=unit~contains~').*?(?=')/)
queryBookQuestions.where('book_unit.unit', unit[0])}
}
But this way I get:
select Count(*) as "total" from "book_unit_question" Where "book_unit"." Unit" = $1 - Missing FROM-clause entry for table "book_unit"