我有一个Laravel应用程序,我使用的是一些感觉非常不直观的代码。
在代码中,我返回一个对象列表($occupied
),它们都具有列'属性'。然后我继续创建一个对象列表的数组'属性($occupiedproperty
)只是为了在whereNotIn调用中使用它。
if ($occupied = Residency::currentResidents()){
// Here is the pointless part //////
$occupiedproperty = array();
foreach ($occupied as $occ) {
array_push($occupiedproperty, $occ->property);
}
///////////////////////////////////
return Property::whereNotIn('id', $occupiedproperty)->get();
}
此代码可以正常工作,但是当我已经有一个对象列表时创建一个新数组似乎很懒。我试着查看雄辩的文档,但我无法解决这个问题。
我需要能够访问'属性' $occupied
的列,因此我可以运行whereNotIn('id', $occupied->property)
谢谢
答案 0 :(得分:1)
现在无法测试它,但这应该可以工作(它甚至可以在不转换为$occupied
集合的数组的情况下工作):
$occupiedProperties = array_pluck((array)$occupied, 'property');
它使用array_pluck()
辅助方法:http://laravel.com/docs/4.2/helpers#arrays