前提・実現したいこと
質問を拝見してくださり、ありがとうございます。
マスタ画面の作成をしています。
物理テーブル名はmt_employeesです。
カラム情報は以下の通りです
部門ID mt_section_id
仕事区分 work_type
雇用区分 mt_employemnt_class_id
氏名 employee_name
社員番号 employee_number
表示順 order_no
登録者 created_user
登録日時 created_datetime
更新者 modified_user
更新日時 modified_datetime
発生している問題・エラーメッセージ
新規登録や編集をしたときに、セレクトボックスで選択していても保存時にnullになってしまいます。
しかし、this->logで中身を見てみるとちゃんと入力されていました。
Database Error Error: SQLSTATE[23502]: Not null violation: 7 ERROR: 列"mt_section_id"内のNULL値はNOT NULL制約違反です DETAIL: 失敗した行は(16, null, 配送, テスト, 123456, null, 3, 28, 2019-11-27 11:22:13, 28, 2019-11-27 11:22:13)を含みます
$this->log($this->data);の結果です。
[MtEmployee] => Array
(
[sections] => 3
[work_type] => 配送
[classes] => 1
[employee_name] => テスト
[employee_number] => 123456
[order_no] => 3
)
該当のソースコード
cakephp
1ビュー 2 3<div class="modal employee-edit-modal" style="display:none"> 4 <div class="modal-window"> 5 <div class="modal-header"> 6 <h2 class="modal-title">社員編集</h2> 7 8 <button class="modal-close-button modal-cancel-button">×</button> 9 </div> 10 <div class="modal-content"> 11 12 <?php echo $this->Form->create('MtEmployee', ['id' => 'employeeEditForm', 13 'action' => 'detail', 14 'submit' => 'return false', 15 'inputDefaults' => ['label' => false, 'div' => false, 'legend' => false] ])?> 16 17 <div class=""> 18 <label for="" class="info-item-header">部署</label> 19 20 <?= $this->Form->input('sections', array('type' => 'select', 'options' => $sections)) ?> 21 </div> 22 23 <div class="input "> 24 <label for="" >仕事区分</label> 25 26 <input name="data[MtEmployee][work_type]" data-bind="value: detail.work_type"/> 27 </div> 28 29 <div class=""> 30 <label for="" class="info-item-header">雇用区分</label> 31 32 <?= $this->Form->input('classes', array('type' => 'select', 'options' => $classes)) ?> 33 </div> 34 35 <div class="input "> 36 <label for="" >氏名</label> 37 38 <input name="data[MtEmployee][employee_name]" data-bind="value: detail.employee_name"/> 39 </div> 40 41 <div class="input "> 42 <label for="" >社員番号</label> 43 44 <input name="data[MtEmployee][employee_number]" data-bind="value: detail.employee_number"/> 45 </div> 46 47 <div class=""> 48 <label for="" class="info-item-header">表示順</label> 49 50 <!-- ko if: detail.id() > 0 --> 51 <select name="data[MtEmployee][order_no]" data-bind="options: orderNumbers, value: detail.orderNo"></select> 52 <!-- /ko --> 53 54 <!-- ko if: detail.id() <= 0 --> 55 <span data-bind="text: newOrderNumber"></span> 56 <input name="data[MtEmployee][order_no]" type="hidden" data-bind="value: newOrderNumber"/> 57 <!-- /ko --> 58 59 </div> 60
補足情報(FW/ツールのバージョンなど)
cakephp2系とknockoutを使っています。
不足なデータがありましたら、コメントにお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/27 05:07
2019/11/28 02:53 編集