如何消除数据库过滤中大小写的影响 - 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()))
            })