0

我是 CAKEPHP 的新手,第一次使用连接。我也阅读了文档。

现在我有两种模型,一种用于用户,另一种用于状态。

在状态表中,我有一个外键,它是用户表中的用户 ID。

我想在条件下使用 $hasMany,这样如果登录用户共享状态,它应该更新在外键中具有 UID 的状态表,并且 UID 是用户表主键

我不知道该怎么做。

我相信它应该是这样的

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,因为 belongsTo 的查询比 hasMany 方法少。在您的控制器中,您可以使用 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 回答