前回までの状況はこちら。
最新ソースはこちら(gitHub)
https://github.com/takishita2nd/diet-mng
データ削除処理を作成します。
とはいっても、もう追加、編集処理が出来上がっているので、そんなに難しくありませんでした。
ぱぱっとやってしまいます。
public function delete($id, $user)
{
$model = $this->getItemById($id);
$this->detachToUser($model, $user);
$model->delete();
}
/**
* データを1件削除する
*/
public function delete(Request $request)
{
$this->weightManagement->delete($request->contents["id"], Auth::user());
return response()->json();
}
Route::post('api/weight/delete', 'Weight\ApiController@delete');
<template>
<div>
<div id="overlay" v-show="show">
<div id="content">
<p v-if="error_flg == true" class="error">
<ui>
<li v-for="error in errors">{{ error }}</li>
</ui>
</p>
<table class="edit">
<tbody>
<tr>
<td>日時</td>
<td>{{contents.date}}</td>
</tr>
<tr>
<td>体重</td>
<td>{{contents.weight}}</td>
</tr>
<tr>
<td>体脂肪</td>
<td>{{contents.fat_rate}}</td>
</tr>
<tr>
<td>BMI</td>
<td>{{contents.bmi}}</td>
</tr>
</tbody>
</table>
<p id="command">
<button @click="clickDelete">OK</button>
<button @click="closeModal">キャンセル</button>
</p>
</div>
</div>
</div>
</template>
<script>
export default {
props: ['show'],
data() {
return {
errors: [],
error_flg: [],
param: {},
contents: {
date: "",
weight: "",
fat_rate: "",
bmi: "",
},
};
},
created: function() {
},
methods: {
dataSet: function(data) {
this.contents = data;
},
clickDelete: function() {
var self = this;
this.param.contents = this.contents;
axios.post('api/weight/delete', this.param).then(function(response){
self.closeModal();
self.$emit('update');
}).catch(function(error){
self.error_flg = true;
self.errors = error.response.data.errors;
});
},
closeModal: function() {
this.$parent.showDeleteDialogContent = false;
},
}
}
</script>
<weight-delete-dialog-component ref="deleteDialog" :show="showDeleteDialogContent" @update="invokeUpdateList"></weight-delete-dialog-component>
onClickDelete: function(id) {
var editData = {};
this.datalists.forEach(element => {
if(element.id == id){
editData.id = id;
editData.date = element.date;
editData.weight = element.weight;
editData.fat_rate = element.fat_rate;
editData.bmi = element.bmi;
return true;
}
});
this.$refs.deleteDialog.dataSet(editData);
this.showDeleteDialogContent = true;
},
いいかんじです。
「【LARAVEL】【ダイエット支援】データ一覧画面からデータ削除」への1件のフィードバック