前提・実現したいこと
cakephpのバージョン2系で車両管理システムのマスタ画面を作っています。
物理テーブル名はmt_work_reasonsです。
編集ボタンを押して、編集画面を表示させたいです。
発生している問題・エラーメッセージ
データベースに登録したデータを編集したいのですが、編集ボタンを押してもなにも反応が無くえらーも出ませんでした。
該当のソースコード
cakephp
1コントローラ 2<?php 3App::uses('AppController', 'Controller'); 4 5class MtWorkReasonsController extends AppController { 6 7 public function index() { 8 } 9 10 11 public function search() { 12 13 $this->autoRender = false; 14 $this->response->type('json'); 15 16 if ($this->request->is('get')) { 17 18 $work = $this->work_reasons(); 19 20 return json_encode(['success' => 'success', 'data' => $work ]); 21 } 22 23 24 $this->response->statusCode(403); 25 return json_encode(['error' => ['message' => '仕様で定義されていないMETHODです。']]); 26 } 27 28 public function detail($id = 0) { 29 $this->autoRender = false; 30 $this->response->type('json'); 31 32 // $idの確認 33 if (! ctype_digit($id) && $id !== 0) { 34 $this->response->statusCode(403); 35 return json_encode(['error' => ['message' => 'ID以外の値が渡されました。'. $id]]); 36 } 37 38 39 if ($this->request->is('get')) { 40 41 $work = $this->MtWorkReason->find('first', ['conditions' => ['id' => $id]]); 42 43 if (empty($work)) { 44 $this->response->statusCode(404); 45 return json_encode(['error' => ['message' => '未登録のIDが指定されました。'. $id]]); 46 } else { 47 return json_encode(['success' => 'success', 'data' => $work]); 48 } 49 } elseif ($this->request->is('post')) { 50 51 if ($id > 0) { 52 $this->request->data['MtWorkReason']['id'] = $id; 53 $this->MtWorkReason->id = $id; 54 $data['id'] = $id; 55 } else { 56 $this->MtWorkReason->create(); 57 } 58 59 if ($this->MtWorkReason->save($this->data)) { 60 if ($id <= 0) { 61 $id = $this->MtWorkReason->id; 62 } 63 64 return json_encode(['success' => 'success', 'data' => $this->request->data]); 65 } else { 66 $this->response->statusCode(500); 67 return json_encode(['error' => ['message' => '保存に失敗しました。']]); 68 } 69 } elseif ($this->request->is('delete')) { 70 // 削除 71 72 if ($id > 0) { 73 /* if ($this->User->find('count', ['conditions' => ['MtOffice_id' => $id]]) > 0) { 74 * $this->response->statusCode(403); 75 * return json_encode(['error' => ['message' => '使用中の権限です。未使用にしてから削除してください。']]); 76 * } */ 77 78 $this->MtWorkReason->id = $id; 79 if ($this->MtWorkReason->delete($id, true)) { 80 return json_encode(['success' => 'success', 'data' => []]); 81 } else { 82 $this->response->statusCode(500); 83 return json_encode(['error' => ['message' => '削除に失敗しました。']]); 84 } 85 86 } else { 87 $this->response->statusCode(403); 88 return json_encode(['error' => ['message' => 'IDを送信してください。']]); 89 } 90 } 91 92 $this->response->statusCode(403); 93 return json_encode(['error' => ['message' => '仕様で定義されていないMETHODです。']]); 94 } 95 96 97 private function work_reasons() { 98 return $this->MtWorkReason->find('all', ['order' => 'order_no']); 99 } 100}
cakephp
1ビュー 2<?php 3echo $this->Html->css('modal',[ 'inline' => false ]); 4echo $this->Html->css('animate.min.css',[ 'inline' => false ]); 5echo $this->Html->css('dialog',[ 'inline' => false ]); 6echo $this->Html->css('loading-modal',[ 'inline' => false ]); 7echo $this->Html->css('MtWorkReason/index.css',[ 'inline' => false ]); 8 9echo $this->Html->script('webapi.js',[ 'inline' => false ]); 10echo $this->Html->script('modal.js',[ 'inline' => false ]); 11echo $this->Html->script('loading-modal.js',[ 'inline' => false ]); 12echo $this->Html->script('animate.js',[ 'inline' => false ]); 13echo $this->Html->script('dialog.js',[ 'inline' => false ]); 14echo $this->Html->script('view/MtWorkReasons/index.js',[ 'inline' => false ]); 15 16?> 17<h1>事由マスタ</h1> 18 19<a href="#new" data-bind="click: newDetail">新規登録</a> 20<table> 21 <thead> 22 <tr> 23 <th></th> 24 <th>事由番号</th> 25 <th>事由名</th> 26 <th>表示順</th> 27 </tr> 28 </thead> 29 30 <tbody data-bind="foreach: work_reasons"> 31 <tr> 32 <td><a href="#edit" data-bind="click: showDetail">編集</a></td> 33 <td data-bind="text: MtWorkReason.work_reason_number"></td> 34 <td data-bind="text: MtWorkReason.work_reason"></td> 35 <td data-bind="text: MtWorkReason.order_no"></td> 36 <td><a href="#delete" data-bind="click: deleteDetail">削除</a></td> 37 </tr> 38 </tbody> 39</table> 40 41 42 43 44<div class="modal work_reason-edit-modal" style="display:none"> 45 <div class="modal-window"> 46 <div class="modal-header"> 47 <h2 class="modal-title">事由編集</h2> 48 49 <button class="modal-close-button modal-cancel-button">×</button> 50 </div> 51 <div class="modal-content"> 52 53 <?php echo $this->Form->create('MtWorkReason', ['id' => 'work_reasonEditForm', 54 'action' => 'detail', 55 'submit' => 'return false', 56 'inputDefaults' => ['label' => false, 'div' => false, 'legend' => false] ])?> 57 58 <div class="input "> 59 <label for="" >事由番号</label> 60 61 <input name="data[MtWorkReason][work_reason_number]" data-bind="value: detail.work_reason_number"/> 62 </div> 63 64 <div class="input "> 65 <label for="" >事由名</label> 66 67 <input name="data[MtWorkReason][work_reason]" data-bind="value: detail.work_reason"/> 68 </div> 69 70 <div class=""> 71 <label for="" class="info-item-header">表示順</label> 72 73 <!-- ko if: detail.id() > 0 --> 74 <select name="data[MtWorkReason][order_no]" data-bind="options: orderNumbers, value: detail.orderNo"></select> 75 <!-- /ko --> 76 77 <!-- ko if: detail.id() <= 0 --> 78 <span data-bind="text: newOrderNumber"></span> 79 <input name="data[MtWorkReason][order_no]" type="hidden" data-bind="value: newOrderNumber"/> 80 <!-- /ko --> 81 82 </div> 83 84 <div class="modal-buttons"> 85 <button class="modal-decide-button decision-button" 86 id ="work_reasonSaveButton" 87 type="button" 88 data-bind= "click: saveDetail">保存</button> 89 <button class="modal-cancel-button cancel-button" type="button">キャンセル</button> 90 </div> 91 92 <?php echo $this->Form->end(); ?> 93 </div> 94 </div> 95</div> 96 97<?php echo $this->element('loading-modal'); ?> 98<?php echo $this->element('dialog'); ?> 99
試したこと
打ち間違いだと思い探したのですが、自分では探すことができませんでした。
補足情報(FW/ツールのバージョンなど)
足りない情報などありましたら、コメントにお願いします。
回答2件
あなたの回答
tips
プレビュー