Delete-Methode in den Axios, Laravel und VueJS

Ich bin versucht, senden Sie eine Anfrage löschen, die über axios zu laravel wie folgt:

axios.delete('api/users/' + this.checkedNames)
.then((response) => {
    console.log(response)
}, (error) => {
    //error callback
})

Nun von axios-Dokumentation habe ich gelesen, dass für die Anfrage löschen wir sollte mit einer configObject so dass die oben genannten könnte umgeschrieben werden, etwa so:

axios.delete('api/users/', {params: {ids:     
    this.checkedNames})
.then((response) => {
    console.log(response)
}, (error) => {
    //error callback
})

Habe ich dann Route::resource('users', 'UsersController'); im api.php also die default-route löschen:

DELETE| api/users/{user}| users.destroy 

und der controller-Methode ist:

|App\Http\Controllers\UsersController@destroy

Ich bin in der Lage zu löschen wie erwartet ein user, wenn ich einen einzigen id-sagen wir mal-api/users/12, es wird korrekt gelöscht, aber wenn ich versuchen Sie, übergeben Sie das array über die Dinge kompliziert.

wenn ich versuche so pro axios Dokumentation axios.delete('api/users/', {params: {id: this.checkedNames}}) es sieht ich bin das senden dieser http://lorillacrud.dev/api/users?id[]=21&id[]=20 aber ich bekomme 405 Methode nicht erlaubt.

wenn ich versuche axios.delete('api/users/' + this.checkedNames ) bekomme ich http://lorillacrud.dev/api/users/20,21 so in mein destroy-Methode, die ich greifen konnte die ids und löschen, aber ich Frage mich, ob dies der richtige Weg, es zu tun?

update

Ich schien ich es zu arbeiten, aber ich bin nicht zu verstehen, so dass jede Hilfe immer noch geschätzt, um ein Gefühl von dem, was ich bin, tatsächlich macht die Arbeit!

So, wenn änderung:

axios.delete('api/users/destroy', {params: {'id': this.checkedNames})

und in mein destroy-Methode:

    if ($request->id) {
        foreach ($request->id as $id) {
            User::destroy($id);
        }
    }
    User::destroy($id);
}

So...

//not deletes the user
axios.delete('api/users/destroy', {params: {id: id}}) 

//ok deletes the users when using request->id in a for loop in the destroy laravel method.
axios.delete('api/users/destroy', {params: {ids: this.checkedNames}}) 

//ok deletes one user
axios.delete('api/users/' + id)

sorry Leute, aber ich habe eine Menge Verwirrung, warum und was !!!

Namens der route ist user.destroy warum funktioniert es, wenn ich ein array übergeben und es funktioniert nicht, wenn ich einen einzigen Wert, warum Umgekehrt die route mit der Methode delete wird nicht gelöscht, wenn ein array übergeben ???

Keinen Unterschied zwischen der Verwendung api/users/destroy vs api/users nur?

Vielen Dank für jede Hilfe!

Vielen Dank für die änderungen, werde vorsichtiger sein, nächste Frage.

InformationsquelleAutor Lorenzo Beltrame | 2017-09-24

Schreibe einen Kommentar