<?php
class PluginModel extends PluginAppModel {
public function hello(){
$anotherModel =& ClassRegistry::init('Plugin.PluginAnotherModel');
$this->read();
$db =& ConnectionManager::getDataSource($this->useDbConfig);
$db->begin($this);
$anotherModel->create(array('AnotherModel' => $this->data['PluginModel']));
$anotherModel->save();
$db->commit($this);
}
}
?>
このスクリプトは ClassRegistry::init() 関数を使用して別のモデルを呼び出しています。現在のモデルからデータを取得し、それを他のモデルの create() に入れます。保存しようとすると、char を datetime に変換する際に SqlServer エラーが発生します。データをデバッグすると、INSERT 日時形式が「Ymd」として表示されますが、app/model/datasource/Sqlserver.php で datetime = 'Ymd' を指定しました。
日時形式が取得されないのはなぜですか? 通常のモデルの保存では期待どおりに機能しますが、ClassRegistry::init 関数で別のモデルを呼び出すと機能しませんか?
保存する前にデータセットをループして日時フィールドを「Ymd」に変換するという回避策がありますが、これは正しい方法のようには思えませんか?
ありがとう。