javascript - Pole dotazov vo Vue.js Router


Snažím sa odoslať pole z dotazu na backend pomocou Vue.js a routera.

Takže mám túto metódu:

submitForm () {
  this.$router.push({
    name: 'AuctionResult',
    query: {
      models: this.selectedModels.map(e => e.value)
    }
  })
},

Ako výsledok bude dotaz vyzerať takto: ?models=MODEL1&models=MODEL2... Ale ako môžem urobiť, aby vstupy vyzerali ako pole, takto: ?models[]=MODEL1&models[]=MODEL2... ???

Nenašiel som nič v dokumentácii.

Odpoveď č. 1

Ak chcete podporiť viacnásobné hodnoty vo formáte PHP/pole, môžete jednoducho nastaviť názov kľúča na to, čo chcete, tj

query: {
  'models[]': this.selectedModels.map(e => e.value)
}

Toto môže vyjsť ako

?model%5B%5D=MODEL1&model%5B%5D=MODEL2...

ale to je v poriadku (je to len kódované URL) a váš serverový spracovateľ požiadaviek by to mal správne dekódovať.