我是 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/