【问题标题】:Get saved id from HABTM save从 HABTM 保存中获取保存的 id
【发布时间】:2013-06-18 13:25:08
【问题描述】:

我正在将数据保存到我的表中,但我想获取已保存的 HABTM 记录的 ID。

保存数组如下:

Array
(
    [User] => Array
        (
            [id] => 1
        )

    [Following] => Array
        (
            [follows_uid] => 36
        )

)

所以它在followers_users表中保存了一条新记录,用户ID为1,被关注者的用户ID为36。每条新记录都有一个新ID,但我不能使用$this->User->getInsertID();$this->User->getLastInsertID(); 因为它返回 [User] 的 ID。

保存并运行pr($this->User->FollowersUser); 后,我得到了这个:

AppModel Object
(
    [useDbConfig] => default
    [useTable] => followers_users
    [id] => 
    [data] => Array
        (
            [FollowersUser] => Array
                (
                    [16] => 
                )

        )

在这种情况下,查看数据库的实际插入 id 是9

任何想法将不胜感激!

【问题讨论】:

  • sry 努力但没有找到方法。稍后会回到这个问题。

标签: php cakephp has-and-belongs-to-many


【解决方案1】:

如果您只想找到新的 HABTM 字段的 id,我只需进行简单的find 调用。这可能不是最有效的方法,但可以保证结果:

$this->User->FollowersUser->find('first', array(
    'FollowersUser.user_id'     => $user_id,
    'FollowersUser.follows_uid' => $followers_id
    ))

【讨论】:

  • 谢谢,我可能最终会这样做,因为似乎没有其他合乎逻辑的方式......!!
  • 没错,这似乎不合逻辑,但这是有保证的方式。也许你可以适配对应模型的afterSave函数并返回id,或者在封装这个解决方案的模型中创建一个新函数。这将是相同的功能解决方案,但更漂亮。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多