簡體   English   中英

object 上的 Knex.js.whereILike()

[英]Knex.js .whereILike() on an object

沒有找到關於這是否可能的答案。 我正在傳遞一個帶有過濾器作為鍵/值的 object。

前任。

const filters = {
  'id': 12,
  'first_name': john
}
function findBy(filter) {
  return db('quotes')
    .where(filter)
    .orderBy('id');
}

我正在嘗試使用 whereILike() 將每個 where 子句設置為不區分大小寫。 有沒有人可以推薦的解決方案?

找到了解決方案:

https://knexjs.org/#Builder-modify

return db('quotes')
    .modify(function(queryBuilder) {
      if (filter.id) {
        queryBuilder.where('id', 'ilike',  `%${filter.id}%`);
      }
      if (filter.first_name) {
        queryBuilder.where('first_name', 'ilike',  `%${filter.first_name}%`);
      }
      if (filter.email) {
        queryBuilder.where('email', 'ilike',  `%${filter.email}%`);
      }
      if (filter.active) {
        queryBuilder.where('is_complete', 'ilike',  `%${filter.active}%`);
      }
      if (filter.is_archived) {
        queryBuilder.where('is_archived', 'ilike',  `%${filter.is_archived}%`);
      }
    })
    .orderBy('id');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM