私はEmployeeオブジェクトのツリーを持っています(それらはツリーのような階層にあり、全員が1人のリーダーを持ち、すべてのリーダーがより多くの従業員を持っています)。すべての従業員には、unitsと呼ばれる整数パラメーターがあります。
/**
* @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()のClosureで使用しようとしていました。これでメソッドが見つかったのでuse
、Closureで変数を指定できます。
public function getBestEmployees(&$configContainer)
{
return $this->getAllEmployees()->filter(
function bestEmployees($employee) use ($configContainer)
{
return ($employee->getUnits() >= $configContainer->getParameter('best_unit_count'));
}
);
}
ここで、エンティティから構成パラメーターにアクセスする他の方法があるのでしょうか、それともconfigContainer全体を参照として渡す必要があるのでしょうか。それとも私はそれを完全に間違っていますか?