Update Tabel VUE

Vue in combinatie cu Laravel, am un tabel unde sunt pe afisate 30 iteme/pagina, sunt 2 pagini. Daca scriu numele unui item de pe pagina 2 si eu sunt pe pagina 1 nu mi-l va gasi, am facut niste incercari cu axios sa trimit input-ul din search spre Controller sa caute in DB, e ok (am testat, se cauta, Controller-ul este apelat)… dar nu stiu cum sa actualizez tabelul cu datele gasite…
Search-ul:
<el-input v-model="search" placeholder="Cauta nume..." @change="getInfo()" clearable />

Tabelul (cum este afisat):
<el-table :data="infos.filter(data => !search || data.name.toLowerCase().includes(search.toLowerCase()))" size="medium" style="width: 100%" fit highlight-current-row v-loading="loading">

Functia getInfo in methods:
getInfo() { axios.post('/srt', { search: this.search }) .then((response) => this.data = response.data) .catch((error)=>console.log(error)); },

Functia in Controller care cauta in DB:

public function sor(Request $request)
    {
        Log::critical($request->search);
        $query = Infos::where('name','LIKE','%'.$request->search.'%')->orderBy('name', 'asc')->paginate(10);
        return response()->json($query);
    }


1 Like

E ok, acum ma lovesc de o noua eroare…
ERROR: [Vue warn]: Computed property “promoters” was assigned to but it has no setter.

Cod:

computed:{
            ...mapGetters({
                promoters: 'promoter/promoters',
            }),
        },

GetInfo (functia este apelata, merge):

getInfo()
            {
                this.loading = true;
                axios.post('/srt', {
                    search: this.search
                })
                .then((response) => {this.promoters = response.data, console.log(response.data), this.loading = false;});
            },

Nu este o eroare, ci warning. Iti spune ca este nevoie de un setter.

Nu am lucrat cu Vue, dar vezi aici

1 Like

M-am uitat dar n-am reusit sa-i dau de cap…