RedBean ORM ID 列

Posted

技术标签:

【中文标题】RedBean ORM ID 列【英文标题】:RedBean ORM ID Column 【发布时间】:2015-07-24 11:42:22 【问题描述】:

有没有办法使用 RedBean php 手动设置新 bean 的 ID?我正在存储来自 API 的缓存数据,该 API 生成每一行的 ID,为了简单起见,我只想使用该 ID

我读过其他线程说只需创建一个新列 (row_id) 或其他内容,但我只想使用生成的唯一 ID 作为 ID

【问题讨论】:

【参考方案1】:

根据 mysql 文档

没有为 AUTO_INCREMENT 列指定值,所以 MySQL 自动分配序列号。您也可以明确地 将 0 分配给列以生成序列号。如果该列是 声明 NOT NULL,也可以将 NULL 分配给列 生成序列号。当您将任何其他值插入 AUTO_INCREMENT 列,该列设置为该值并且 序列被重置,以便下一个自动生成的值 从最大的列值开始依次排列。

如果这是真的,在 RedBean 中你可以做类似的事情

$post = R::dispense('post');
$post->id = 234;
R::store($post);

我没有对此进行测试,因为我将自动递增列设置为整数默认为 0,它会自动递增。

【讨论】:

【参考方案2】:

我做了一个修改版的redbean,它允许你使用另一个字段作为主键(自动递增) https://github.com/freelanceniek/redbeanx

【讨论】:

以上是关于RedBean ORM ID 列的主要内容,如果未能解决你的问题,请参考以下文章

使用 RedBean PHP ORM 时如何确保表被某个列索引?

RedBean PHP:有没有办法保护数据库列不被更改? (例如:插入日期)

在 Redbean 中给出链接 bean 表的名称是不是有规则?

从bean拆箱模型时RedBean返回null?

PHP ORM 最佳实践:从另一个对象类型中检索值:

不能在 RedBean 中存储盒装模型?