我使用 readbeanphp 作为我的 php 项目的 ORM。我正在尝试加载带有附加 where 子句的 bean。但我不知道该怎么做。
通常我会得到这样的“ bean ”:
$book = R::load('book', $id);
这基本上就像是说:
SELECT * FROM book WHERE id = '$id'
但是我需要在 where 子句中添加另一个条件:
SELECT * FROM book WHERE id = '$id' AND active = 1
我如何使用 redbeanphp 做到这一点?
最佳答案
R::find()
和 R::findOne()
就是您要查找的内容:
$beans=R::find("books","active=? AND id=?",array(1,1));
或者如果您只想要一个 bean:
$bean=R::findOne("books","active=? AND id=?",array(1,1));
R::find()
将返回多个 bean,而 R::findOne()
仅返回单个 bean。
从技术上讲,您可以使用R::load()
,但必须在加载 bean 后使用 PHP 检查 active
字段以测试它是否有效:
$bean=R::load("book",$id);
if($bean->active==1){//valid
//do stuff
}else{//not valid
//return error
}
希望这有帮助!
关于php - redbeanphp 中的多个 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10162752/