Я новичок в vue js, мне показалось, что в некоторых местах это немного смущает, но вот последняя путаница, с которой я столкнулся.
Например, я хочу удалить строку с идентификатором 3, но еепозиция в списке равна 0, при ударе она возвращает ошибку в консоли:
DELETE http://simvuecore/api/contoh/0 404 (Not Found)
, что означает, что axios отправляет position
, в то время как контроллер ожидает id
, хотя id
фактически не указанотам.
для справки, вот мои коды:
API routes
:
Route::delete('/contoh/{contoh}', 'contohController@destroy');
contohController
:
public function destroy(contoh $contoh)
{
$contoh->delete();
return response('terhapus', 200);
}
store.js
:
state: {
contoh: []
},
mutations: {
deleteContoh(state, id) {
const index = state.contoh.findIndex(item => item.id == id)
state.contoh.splice(index, 1)
}
},
actions: {
deleteContoh(context, id) {
axios.delete('api/contoh/' + id)
.then(response => {
context.commit('deleteContoh', id)
})
},
}
contohItem.vue
:
methods: {
removeContoh(id) {
this.$store.dispatch('deleteContoh', id)
},
все операции CRUD работают правильно при использовании POSTMAN
и при запросе от vue, delete
является единственным, который нене работает из-за этой position
и id
проблемы.
ВОПРОС: как настроить axios отправлять id
вместо position
на контроллер?
ОБНОВЛЕНИЕ: Проблемарешается следующим ответом @andrey popov.У меня было это в contohItem.vue
:
<span @click="removeContoh(index)" class="remove-contoh">X</span>
, и оно работает после того, как я изменил это на:
<span @click="removeContoh(id)" class="remove-contoh">X</span>