0

テーブル「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');
}
4

2 に答える 2

1

var $primaryKey = 'user_id';私の「Emailsetting.php」モデル内の設定は、うまくいくようですが、これは正しいアプローチですか?

于 2013-11-04T14:42:18.800 に答える