gpt4 book ai didi

orm - Redbean:如何获得拥有的 Bean 的最后插入 id?

转载 作者:行者123 更新时间:2023-12-01 10:51:11 24 4
gpt4 key购买 nike

我在我的 MVP 项目(由 Nette FW 提供支持)中将 RedBeanPHP 3.5.1 用于 ORM。

我需要获取最后一个插入元素的 ID,该元素由另一个表中的元素拥有。您可以在下面找到表示我刚刚描述的功能的方法:

public function createSite($userId, $siteName, $feedUrl, $reloadTime, $reloadRate){
$site = R::dispense('site');
$site->user_id = $userId;
$site->name = $siteName;
$site->feed = $feedUrl;
$site->reload_time = $reloadTime;
$site->reload_rate = $reloadRate;

$user = R::load('user', $userId);
$user->ownSite[] = $site;
$id = R::store($user);

return $id;
}

现在我假设那条线
$id = R::store($user);

将存储 站点 ID 进入 $id变量,因为它由已经存在的用户拥有。取而代之的是,它用我不再使用的用户 ID 填充变量。

所以我的问题是: 如何获取刚刚通过调用 R::store() 创建的拥有的 bean 的最后插入 ID父(刚加载)bean 上的方法? RedBean 中是否有对此的实现,还是我必须手动执行此操作?

我浏览了 RedBeanPHP 项目网站的每个角落,但到目前为止还没有运气。

感谢您提供可能的建议,伙计们。

最佳答案

使用常识,我终于想出了如何优雅地解决这个问题,因为到目前为止没有人回答我的问题,让我自己做吧。

R::store($user)能够同时存储 $user$site ,有误导性 无需存储 $site手动对象。

但是,如果您需要获取拥有的 bean 的最后插入的 id,那么这样做确实没有坏处。来自 收纳$site对象 框架将做完全相同的事情,而且最重要的是 它返回resired id .

所以正确的方法实现如下所示:

public function createSite($userId, $siteName, $feedUrl, $reloadTime, $reloadRate){
$site = R::dispense('site');
$site->user_id = $userId;
$site->name = $siteName;
$site->feed = $feedUrl;
$site->reload_time = $reloadTime;
$site->reload_rate = $reloadRate;

$user = R::load('user', $userId);
$user->ownSite[] = $site;

$id = R::store($site);
R::store($user);

return $id;
}

所以总而言之, 向 RedBeanPHP 致敬 ORM FW 和我真诚地希望这可以帮助将来遇到类似问题的人。

关于orm - Redbean:如何获得拥有的 Bean 的最后插入 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com