前回までの状況はこちら
最新ソースはこちら(gitHub)
https://github.com/takishita2nd/hotel-mng
予約詳細画面に削除ボタンを設置します。
<button @click="closeModal">close</button>
<button v-if="edit_flg == false" @click="onClickEdit">編集</button>
<button v-else @click="onClickSave">保存</button>
<button v-if="edit_flg == false" @click="onClickDelete">削除</button>
onClickDelete: function() {
var self = this;
this.param.year = this.selectYear;
this.param.month = this.selectMonth;
this.param.room = this.selectRoom;
this.param.id = this.contents.id;
axios.post('/api/delete', this.param).then(function(response){
self.registers = [];
self.updateRegisters(self, response.data.registerLists);
self.closeModal();
}).catch(function(error){
self.error_flg = true;
self.error_message = error.response.data.errors;
});
},
updateRegisters: function(self, registerLists){
registerLists.forEach(element => {
self.registers.push(
{
id:element.id,
name:element.name,
address:element.address,
phone:element.phone,
num:element.num,
roomid:element.roomid,
room:element.room,
days:element.days,
start_day:element.start_day,
checkout:element.checkout
}
);
});
}
APIへのルーティング
Route::post('/api/delete', 'ApiController@delete');
public function delete(Request $request)
{
$this->registerManagement->deleteById($request->id);
return response()->json(['registerLists' => $this->registerManagement->getListByMonth(
$request->year,
$request->month,
$request->room
)]);
}
実際に削除したら、レスポンスで予約一覧を返し、一覧を最新の状態で表示してもらいます。
あとは、一覧更新処理が共通しているので関数化。
難なく設置できました。
・・・追加処理もモーダル化する?
「【Laravel】【Vue.js】【ホテル予約管理】予約の削除を実装する」への1件のフィードバック