ModelクラスにてINSERT処理を行いたいのですが、
なぜか "created_id" と "modified_id" カラムが登録されません。(空白になります。)
これはCakeの命名規則によるものでしょうか?
それとも処理に不備があるのでしょうか?
($this->saveまでの$dataは問題なく"created_id" と "modified_id"データが入っております。)
毎度毎度初歩的な質問をしてしまい申し訳ありませんが、
アドバイス頂けたらと思います。
以下、ソースです。
`
<!-- tableName:Test2 -->t1_code int(5) a/i t1_display_no int(5) t1_option_value varchar(30) created datetime created_id varchar(15) modified timestamp modified_id varchar(15)
t2_code int(5) a/i t2_display_no int(5) t2_option_value varchar(30) created datetime created_id varchar(15) modified timestamp modified_id varchar(15)
table_name:文字列
deisplay_no:数値
option_value:文字列
user_id:文字列
`
lang
1<?php 2// Controller/TestController 3App::uses('AppController', 'Controller'); 4class TestController extends AppController { 5 public $uses = array('Test1', 'Test2); 6 public function index() {} // 入力フォーム 7 public function add() { 8 if ($this->request->is('post') && isset($this->request->data)) { 9 switch ($this->request->data["tableName"]) { 10 case 'Test1': 11 $this->Test1->insertData($this->request->data); 12 break; 13 case 'Test2': 14 $this->Test2->insertData($this->request->data); 15 break; 16 } 17 return $this->redirect(array('controller' => 'Test', 'action' => 'index')); 18 } 19 } 20} 21?>
lang
1<?php 2// Model/AppModel 3App::uses('Model', 'Model'); 4class AppModel extends Model { 5 var $db ; 6 function begin() { 7 $db = ConnectionManager::getDataSource($this->useDbConfig); 8 $db->begin($this); 9 } 10 function commit() { 11 $db = ConnectionManager::getDataSource($this->useDbConfig); 12 $db->commit($this); 13 } 14 function rollback() { 15 $db = ConnectionManager::getDataSource($this->useDbConfig); 16 $db->rollback($this); 17 } 18} 19?>
lang
1<?php 2// Model/Test1 3App::uses('AppModel', 'Model'); 4class Test1 extends AppModel { 5 public function insertData($postData) { 6 $data = array( 7 't1_display_no' => htmlspecialchars($postData["display_no"], ENT_QUOTES), 8 't1_option_value' => htmlspecialchars($postData["option_value"], ENT_QUOTES), 9 'created' => date('Y-m-d H:i:s'), 10 'created_id' => htmlspecialchars($postData["user_id"], ENT_QUOTES), 11 'modified' => date('Y-m-d H:i:s'), 12 'modified_id' => htmlspecialchars($postData["user_id"], ENT_QUOTES) 13 ); 14 $params = array('validate' => false); 15 $this->begin(); 16 try { 17 $this->create(); 18 $this->save($data, $params); 19 } catch (Exception $e) { 20 $this->rollback(); 21 } 22 $this->commit(); 23 } 24} 25?>
lang
1<?php 2// Model/Test1 3App::uses('AppModel', 'Model'); 4class Test2 extends AppModel { 5 public function insertData($postData) { 6 $data = array( 7 't2_display_no' => htmlspecialchars($postData["display_no"], ENT_QUOTES), 8 't2_option_value' => htmlspecialchars($postData["option_value"], ENT_QUOTES), 9 'created' => date('Y-m-d H:i:s'), 10 'created_id' => htmlspecialchars($postData["user_id"], ENT_QUOTES), 11 'modified' => date('Y-m-d H:i:s'), 12 'modified_id' => htmlspecialchars($postData["user_id"], ENT_QUOTES) 13 ); 14 $params = array('validate' => false); 15 $this->begin(); 16 try { 17 $this->create(); 18 $this->save($data, $params); 19 } catch (Exception $e) { 20 $this->rollback(); 21 } 22 $this->commit(); 23 } 24} 25?>
`
<!-- 実行されたクエリ -->BEGIN
INSERT INTO caketest
.test1
(modified
, t1_display_no
, t1_option_value
, created
) VALUES ('2014-10-16 20:29:47', 1, 'AAA', '2014-10-16 20:29:47')
COMMIT
`
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。