mysql - CakePHP:表连接

标签 mysql cakephp

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

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

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

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

我不知道该做什么以及如何做。

我相信它应该是这样的

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

希望我做得对吗?

最佳答案

对于 hasMany 将此代码放入您的用户模型中:

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

但是最好的方法是在状态模型中使用belongsTo,因为belongsTo的查询比hasMany方法少。在您的 Controller 中,您可以使用状态模型来检索用户及其状态。例如: 在状态模型中:

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

然后在您的 Controller 中查找数据库中的特定行,您可以使用:

    $this->recursive = 1;
    $this->Status->find('all',array('conditions' => array('User.id' => $id)));

关于mysql - CakePHP:表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12707856/

相关文章:

iphone - 使用 CakePHP 的媒体 View 将视频提供给 iPad/iPhone

mysql - 如何在 cakephp 中使用事务

javascript - 在 CakePHP 中添加内联 JavaScript 以形成输入元素

c# - 服务契约(Contract) - 我们应该为 12 个月的服务契约(Contract)收取多少费用

MySQL TABLE.TABLE_ROWS 在插入期间减少

php - 如果值已存在,则检索 id PDO

php - 在 Apache2/Cake PhP 中定义文档根目录

CakePHP 不会找到新的表列

php - 使用前验证 SQL 文件

php - fatal error : Uncaught Error: Call to a member function bind_result() on boolean in --- line22