テーブル「users」と「belongsTo」関係を持つテーブル「emailsettings」があります。
emailsettings には次の列があります。
- ユーザー ID (INT)
- 購読済み (NULL、0 または 1)
- ニュースレター (NULL、0 または 1)
- 通知 (NULL、0 または 1)
私の問題は、エントリを更新できないことです.CakePHPは、たとえ私がそうしても、常に新しい行を挿入しようとします$this->Emailsetting->user_id = 1
.
関連付けられたテーブルに「id」primaryKey が必要な可能性はありますか、それとも「user_id」を持っている場合に CakePHP に強制的にエントリを更新させることはできますか (id primaryKey を追加しても意味がないので、私のセットアップの問題)。
メール設定.php
<?php
class Emailsetting extends AppModel {
public $name = 'Emailsetting';
public $belongsTo = array('User' => array('className' => 'User', 'foreignKey' => 'user_id'));
public $useTable = 'email_settings';
}
ユーザー.php
<?php
class User extends AppModel {
public $name = 'User';
public $hasOne = array('Profile', 'Emailsetting');
}