0

私は CAKEPHP を初めて使用し、初めて結合を使用します。ドキュメントも読みました。

現在、2 つのモデルがあります。1 つはユーザー用で、もう 1 つはステータス用です。

ステータス テーブルには、ユーザー テーブルのユーザー ID である外部キーがあります。

ログインしたユーザーがステータスを共有する場合、外部キーにUIDがあり、UIDがUsersテーブルのプライマリキーであるステータステーブルを更新する必要があるという条件で$hasManyを使用したい

何をどのように行うのかわかりません。

私が信じているのは、このようなものであるべきだということです

class User extends AppModel 
{    
    var $name = 'User';    
    var $hasMany = array(
    'Status' => array( 
    'conditions' => array('Status.FK' => 'User.id') 
       )
    );
}

私はそれを正しくやったと思いますか?

4

1 に答える 1

3

hasMany の場合、ユーザー モデルに次のコードを追加します。

/**
 * @see Model::$hasMany
 */
    public $hasMany = array(
        'Status' => array(
            'className' => 'Status',
            'foreignKey' => 'Status.FK',
            'dependent' => true,
        ),
    );

しかし、最善の方法は、ステータスモデルで belongsTo を使用することです。コントローラーでは、Status モデルを使用して、ユーザーのステータスを取得できます。例: ステータス モデル:

/**
 * @see Model::$belongsTo
 */
    public $belongsTo = array(
        'User' => array(
            'className' => 'User',
            'foreignKey' => 'Status.FK',
        ),
    );

次に、データベースから特定の行を見つけるためのコントローラーで、次を使用できます。

    $this->recursive = 1;
    $this->Status->find('all',array('conditions' => array('User.id' => $id)));
于 2012-10-04T07:16:21.573 に答える