我有一个 Employee 对象树(它们处于树状层次结构中,每个人都有一个领导,所有领导都有更多的员工)。所有员工都有一个称为单位的整数参数。
/**
* @ORM\Entity
* @ORM\Table(name="employees")
*/
class Employee
{
/**
* @ORM\Id
* @ORM\Column(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="Employee", mappedBy="leader")
*/
protected $employees;
/**
* @ORM\ManyToOne(targetEntity("Employee", inversedBy="employees")
*/
protected $leader;
}
我需要获取最多拥有 N 个单位的所有员工,其中 N 在config.yml
. 起初,我试图将 $configContainer 推入 $GLOBALS,并在 ArrayCollection::filter() 的闭包中使用它。现在我找到了一个方法,所以我可以use
在闭包中变量:
public function getBestEmployees(&$configContainer)
{
return $this->getAllEmployees()->filter(
function bestEmployees($employee) use ($configContainer)
{
return ($employee->getUnits() >= $configContainer->getParameter('best_unit_count'));
}
);
}
现在我想知道是否有任何其他方法可以从实体访问配置参数,还是我真的必须将整个 configContainer 作为参考传递?还是我做错了?