【问题标题】:CakePHP: Table JoinsCakePHP:表连接
【发布时间】:2012-09-24 08:14:33
【问题描述】:

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

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

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

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

我不知道该怎么做。

我认为应该是这样的

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

希望我做对了吗?

【问题讨论】:

    标签: mysql cakephp


    【解决方案1】:

    对于 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)));
    

    【讨论】:

    • 帮助很大。你救了我的命:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多