仅检索RedBean中的某些字段

f1a*_*mes 6 php mysql orm redbean

我正在使用RedBean ORM编写一些代码,我想知道我是否可以加载/重新启动db表中的某些字段.我知道有一个加载方法,但它将整个表作为bean.我希望只获得一些领域?

嘿,当我写它时,我开始想知道它是否不符合RedBean模式(或ORM),因为只获取一些值将创建无效(只有一些值)对象/ bean?我想做一些延迟加载的值...也许有一些其他的ORM(像RedBean一样简单:)来实现这个目标吗?

Gab*_*oij 2

仅从记录中加载某些字段是没有意义的:

  • 通过选择较少的字段,您不会减少查询数量
  • 它不会减少需要传输的数据量(这与行数更相关)

此外,RedBeanPHP 已经延迟加载所有关系字段,因此无需执行此手动操作。如果您只对单个单元格感兴趣,请使用:

R::getCell("select title from document where id = 1");
Run Code Online (Sandbox Code Playgroud)

或者只是从记录中获取一些字段:

R::getRow("select id,title from document where... ");
Run Code Online (Sandbox Code Playgroud)

这些函数返回记录,而不是 bean,这是处理简单字段和行的最快方法。

希望这个答案有帮助...

  • 抱歉,但我不得不不同意。想象一个博客。它有 200 个帖子,每个帖子的“body”属性中都有大量文本。如果你想显示所有帖子的列表,加载它们的“body”属性很容易就会耗尽内存。但问题是你不需要“body”来显示列表。选择性加载可以挽救局面。但无论如何,我喜欢你的 ORM,而且你做得非常出色。非常感谢你:D (5认同)