teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

マスタの説明追加

2019/12/18 08:32

投稿

kuuhaku4262
kuuhaku4262

スコア39

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- マスタを作成しています。
3
+ テーブルのデータを自由に追加・編集・削除できる画面をています。
4
4
  その中の項目の一つに表示順というのがあります。
5
5
  表示順は上のデータから1,2,3...と数値が振られています。
6
6
  レコードを一つ削除してしまうと、表示順が飛び飛びになってしまいます。

1

ソースコードの追加

2019/12/18 08:32

投稿

kuuhaku4262
kuuhaku4262

スコア39

title CHANGED
File without changes
body CHANGED
@@ -6,4 +6,75 @@
6
6
  レコードを一つ削除してしまうと、表示順が飛び飛びになってしまいます。
7
7
  ですので、表示順を1から振りなおしたいです。
8
8
  しかしどのような関数を使えばいいのかが分かりません。
9
- ご教授のほど、よろしくお願いいたします。
9
+ ご教授のほど、よろしくお願いいたします。
10
+
11
+ ###削除関係の関数
12
+ ```
13
+ public function detail($id = 0) {
14
+ $this->autoRender = false;
15
+ $this->response->type('json');
16
+
17
+ // $idの確認
18
+ if (! ctype_digit($id) && $id !== 0) {
19
+ $this->response->statusCode(403);
20
+ return json_encode(['error' => ['message' => 'ID以外の値が渡されました。'. $id]]);
21
+ }
22
+
23
+
24
+ if ($this->request->is('get')) {
25
+
26
+ $office = $this->MtCarAppliance->find('first', ['conditions' => ['id' => $id]]);
27
+
28
+ if (empty($office)) {
29
+ $this->response->statusCode(404);
30
+ return json_encode(['error' => ['message' => '未登録のIDが指定されました。'. $id]]);
31
+ } else {
32
+ return json_encode(['success' => 'success', 'data' => $office]);
33
+ }
34
+ } elseif ($this->request->is('post')) {
35
+
36
+ if ($id > 0) {
37
+ $this->request->data['MtCarAppliance']['id'] = $id;
38
+ $this->MtCarAppliance->id = $id;
39
+ $data['id'] = $id;
40
+ } else {
41
+ $this->MtCarAppliance->create();
42
+ }
43
+
44
+ if ($this->MtCarAppliance->save($this->data)) {
45
+ if ($id <= 0) {
46
+ $id = $this->MtCarAppliance->id;
47
+ }
48
+
49
+ return json_encode(['success' => 'success', 'data' => $this->request->data]);
50
+ } else {
51
+ $this->response->statusCode(500);
52
+ return json_encode(['error' => ['message' => '保存に失敗しました。']]);
53
+ }
54
+ } elseif ($this->request->is('delete')) {
55
+ // 削除
56
+
57
+ if ($id > 0) {
58
+ /* if ($this->User->find('count', ['conditions' => ['MtOffice_id' => $id]]) > 0) {
59
+ * $this->response->statusCode(403);
60
+ * return json_encode(['error' => ['message' => '使用中の権限です。未使用にしてから削除してください。']]);
61
+ * } */
62
+
63
+ $this->MtCarAppliance->id = $id;
64
+ if ($this->MtCarAppliance->delete($id, true)) {
65
+ return json_encode(['success' => 'success', 'data' => []]);
66
+ } else {
67
+ $this->response->statusCode(500);
68
+ return json_encode(['error' => ['message' => '削除に失敗しました。']]);
69
+ }
70
+
71
+ } else {
72
+ $this->response->statusCode(403);
73
+ return json_encode(['error' => ['message' => 'IDを送信してください。']]);
74
+ }
75
+ }
76
+
77
+ $this->response->statusCode(403);
78
+ return json_encode(['error' => ['message' => '仕様で定義されていないMETHODです。']]);
79
+ }
80
+ ```