Employee と Schedule の間に hasMany 関係があります。従業員を編集するとき、現在のスケジュールを取得してフォームに入力することができました。
保存時に、次を使用します。
if ($this->Employee->save($this->request->data)) {
$this->Employee->Schedule->save($this->request->data, $validate = false);
....
}
従業員データは正常に保存されますが、スケジュール レコードはそのまま残ります。
私は実際にIDを配列の一部として提供しています。私のコントローラでは、debug($this->request->data) が表示されます:
array(
'Employee' => array(
'emp_position' => '1',
'name' => 'the name',
'emp_gender' => '1',
'emp_father' => '',
'emp_mother' => '',
'emp_dob' => 'October 13, 1964',
...
..
),
'Schedule' => array(
(int) 0 => array(
'id' => '7',
'ho_lu2' => '10:00',
'ho_ma2' => '01:00',
'ho_mi2' => '00:00',
'ho_ju2' => '00:00',
'ho_vi2' => '00:00',
'ho_do4' => '00:00'
)
)
)
.
***************** Update ************
2つのテーブルで外部キーが異なることに関係していると思います
私の従業員テーブル:
CREATE TABLE IF NOT EXISTS `employees` (
`id` int(5) DEFAULT NULL,
`emp_appserial` int(5) unsigned NOT NULL AUTO_INCREMENT,
...
(Employee テーブルでは、emp_appserial が私の pk autoincr であり、一部のレコードでは employee_id が null になる可能性があることに注意してください)
私のスケジュール表:
CREATE TABLE IF NOT EXISTS `schedules` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`employee_id` int(5) unsigned NOT NULL,
...
別のフィールドを使用してこれらのテーブルをリンクしたので、foreignKey を使用します。
私のモデルでは、リンクしました: 従業員モデル:
var $hasMany = array(
'Schedule' => array(
'foreignKey' => 'employee_id', //(field on Schedule)
'dependent' => true
)
);
public $primaryKey = 'emp_appserial'
スケジュール モデル:
var $belongsTo = array('Employee',
'Employee' => array(
'foreignKey' => 'emp_appserial' //(field on Employee)
)
);
投稿されたデータに、Schedule の employee_id と Employee の emp_appserial が含まれるようになりました
array(
'Employee' => array(
'id' => null,
'emp_appserial' => '119'
...
),
'Schedule' => array(
(int) 0 => array(
'id' => '6',
'name' => 'segundo horario',
'emp_appserial' => '119',
'employee_id' => '119'
)
)
)
(私の運を試すために、ID とシリアルの両方をスケジュールに追加しようとしましたが、良くありません。)
どんな助けでも大歓迎です。
どうもありがとう !