如何根据多个“标识符”从db表中选择行?
单键匹配
$id = 42;
DataObject::get('Foo')->where("ID = '$id'");
多个匹配项
$id = array(42, 43, 44);
DataObject::get('Foo')->where( ??? );
在第二种情况下,它应该返回ID为42,43或44的行列表。
答案 0 :(得分:3)
SilverStripe ORM知道如何构建where in
个查询:
$ids = array(42, 43, 44);
$items = Foo::get()->byIDs($ids);
对于任何其他套装,您应该使用DataList::filter()
方法;
$products = Product::get()->filter('Category', array('shirts', 'shoes'));
答案 1 :(得分:0)
这似乎有效:
$id = implode(',', array(42, 43, 44));
$items = DataObject::get('Foo')->where("ID IN ($id)");