如何消除数据库过滤中大小写的影响 - vue - laravel
How to elimnate the effect of upper- and lower case in database filter - vue - laravel
我写了一个按列过滤的过滤函数。我注意到,当一个词是大写的时候,如果这个词是小写的,它就不会给出结果。
例如: 我搜索术语 Paper
,我得到了包含单词 Paper
的所有行,但我没有得到包含 paper
.
的行
我可以说,当我粘贴一个单词进行过滤时,自动将其设为小写,但我想获取包含 Paper
的行。我该如何解决这个问题?
如何忽略过滤器中的小写和大写?
谢谢您的帮助。
html 部分
<b-table class="col-sm-12 table-sm" show-empty striped hover stacked="md" tbody-tr-class="addPointer"
:items="filter"
:fields="fields"
@filter="onFilter">
<template slot="top-row" >
<td v-for="field in Object.keys(fields)" :key="field.key">
<input class="col-sm" v-if="Object.keys(filters).indexOf(field) !== -1" v-model="filters[field]" :placeholder="field">
</td>
</template>
<template slot="name" slot-scope="row">
{{row.item.name}}
</template>
</b-table>
函数
data() {
return {
filters: {
name:'',
},
}
},
computed:{
filter () {
const filter = this.datas.filter(value => {
String(value[key]).includes(this.filters[key]))
})
return filter.length > 0 ? filter : [
{
name:'',
}
]
},
尝试根据数据库和您输入的结果调用 toLowerCase()
。
你的情况:
const filter = this.datas.filter(value => {
String(value[key].toLowerCase()).includes(this.filters[key].toLowerCase()))
})
我写了一个按列过滤的过滤函数。我注意到,当一个词是大写的时候,如果这个词是小写的,它就不会给出结果。
例如: 我搜索术语 Paper
,我得到了包含单词 Paper
的所有行,但我没有得到包含 paper
.
我可以说,当我粘贴一个单词进行过滤时,自动将其设为小写,但我想获取包含 Paper
的行。我该如何解决这个问题?
如何忽略过滤器中的小写和大写? 谢谢您的帮助。
html 部分
<b-table class="col-sm-12 table-sm" show-empty striped hover stacked="md" tbody-tr-class="addPointer"
:items="filter"
:fields="fields"
@filter="onFilter">
<template slot="top-row" >
<td v-for="field in Object.keys(fields)" :key="field.key">
<input class="col-sm" v-if="Object.keys(filters).indexOf(field) !== -1" v-model="filters[field]" :placeholder="field">
</td>
</template>
<template slot="name" slot-scope="row">
{{row.item.name}}
</template>
</b-table>
函数
data() {
return {
filters: {
name:'',
},
}
},
computed:{
filter () {
const filter = this.datas.filter(value => {
String(value[key]).includes(this.filters[key]))
})
return filter.length > 0 ? filter : [
{
name:'',
}
]
},
尝试根据数据库和您输入的结果调用 toLowerCase()
。
你的情况:
const filter = this.datas.filter(value => {
String(value[key].toLowerCase()).includes(this.filters[key].toLowerCase()))
})