我无法找到有关此主题的信息:
我在我的系统上进行了一些操作,需要从购买特定产品的用户那里获取ID,所以我可以这样做:
foreach($oProduct->users as $oUser){
HelperClass::registerOperation($oUser->id);
}
但这意味着Laravel需要创建所有User对象才能获取id,然后丢弃所有对象。
直接从数据透视表中获取所有用户ID的最佳方法是什么,而无需加载数百或数千个对象?
由于
答案 0 :(得分:0)
只需在检索到的用户集合
上使用pluck
获取ID
foreach($oProduct->users->pluck('id') as $oUser){
HelperClass::registerOperation($oUser);
}
或者您可以使用Raw SQL从表本身查询ID。
$ids = DB::select('select user_id from product_user where product_id = ?', [$oProduct->id]);
或者QueryBuilder
$ids = DB::table('product_user')->select('user_id')
->where('product_id', $oProduct->id)
->get();