Динамический запрос для использования с платформой go-gorm

Он создает новый объект, используя Box в качестве своего конструктора. Значение this в этом случае (когда функция вызывается с ключевым словом new) - это создаваемый новый экземпляр. Этот новый объект наследует все, что определено как Box.prototype (по умолчанию это Object.prototype).

Я сказал в этом случае , потому что в JavaScript значение this определяется тем, как вызывается функция. Я рекомендую прочитать страницу MDN на this для получения дополнительной информации.


Примечание: если этот вопрос должен быть закрыт, он должен был быть дубликатом. Вот несколько возможных дублирующих ссылок, которые также могут помочь вам:

0
задан Shahid Peerzade 17 January 2019 в 06:36
поделиться

1 ответ

Вы должны использовать конструктор запросов gorm и передавать параметры в аргументах: Where(query interface{}, args ...interface{}) *DB. Этого будет достаточно. Так как приведенные выше методы gorm изменяют внутреннее состояние создаваемого вами SQL-запроса, можно написать код, подобный этому:

var usersMasterList []UsersMaster // gorm Model
if filterBy != "all" {
    controller.database.Where("role = ?", filterBy)
}
if searchBy != "" {
    controller.database.Or("name ilike ?", search)
    controller.database.Or("email ilike ?", search)
    //...
}
//...
controller.database.Find(&usersMasterList)

Код не проверен. Вы можете прочитать больше здесь: http://gorm.io/docs/query.html

Или вы можете просто отфильтровать не алфавитно-цифровые символы из этих строк с помощью регулярного выражения:

[ 111]

Настоятельно рекомендуем переписать ваш код как можно скорее, код будет более безопасным и читабельным.

0
ответ дан asyndrige 17 January 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: