2

我有两个模型和一个连接表UserPostposts_users

posts_users表包含一些额外的字段,其中之一是is_active. 如果用户自己是活跃的,我想将所有用户的帖子设置为活跃。

我有以下

$this->Post->PostsUser->updateAll(array('PostsUser.is_active' => 1), array('PostsUser.user_id' => $data['User']['id'], 'User.is_active' => 1));

这会导致 MySQL 错误

警告(512):SQL 错误:1054:“where 子句”中的未知列“User.is_active”...

查询: UPDATE posts_sitesAS PostsUserSET PostsUseris_active= 1 在哪里PostsUseruser_id= 1 和Useris_active= 1

如您所见,用户表未加入查询。有没有解决这个问题?

4

1 回答 1

2

您是否明确定义了PostsUser模型,或者您只是使用隐式自动生成的模型?

似乎是后者,因此该模型可能不会有任何关联。您可以在进行更新调用之前即时绑定它们,或者您可以显式创建模型文件并定义关联。

PostUser模型相互连接,但PostsUser模型只是一个空的辅助模型,悬挂在它们中的任何一个上。它本身没有任何连接,因此从PostsUser它发出调用时没有定义的关联。

  Post   <--->   User
    |             |
    v             v
PostsUser     PostsUser
于 2009-08-05T06:08:00.703 回答