[英]Error when i try to make relationships in adonis, how i can determine the columns that will return in each relationship? is returning only the id
[英]How i can make where inside a relationship in adonis?
我有這個查詢:
const filter = request.input('filter')
const queryBookQuestions = BookUnitQuestion
.query()
.with('book_unit')
.with('user')
.with('book', (builder) => {
builder.where('id', request.params.id)
})
在此查詢中,我返回與 object book_unit 相關的所有書籍單元問題,用戶和我收到的帶有參數的書籍(request.params.id)。
現在我需要過濾單元。 我實際上有這個過濾器,在“描述”中有一個位置:
if(filter){
if(filter.search("description") !== -1){
let description = filter.match(/(?<=description~contains~').*?(?=')/)
queryBookQuestions.where('description', 'ilike', '%'+description[0]+'%')
}
此過濾器效果很好,但他直接在 BookUnitQuestion Model 中應用。 但是現在,我需要制作一個按單元過濾的過濾器,例如:
if(filter.search("unit") !== -1){
let unit = request.input('filter').match(/(?<=unit~contains~').*?(?=')/)
queryBookQuestions.where('book_unit.unit', unit[0])}
}
但這不起作用,因為 book_unit 是 book_unit_question 內的 object 數組。 當我嘗試以這種方式過濾時,我收到:
select count(*) as "total" from "book_unit_question" where "book_unit"."unit" = $1 - 缺少表 "book_unit" 的 FROM 子句條目
你快到了,在 with('book_unit') 之后你可以這樣做:
filter = request.input('filter')
const queryBookQuestions = BookUnitQuestion
.query()
.with('book_unit')
.whereHas('book_unit', (builder) => {
...your filter here
})
.with('user')
.with('book', (builder) => {
builder.where('id', request.params.id)
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.