Doctrine orm 规则阵列集合固定大小

Doctrine orm 规则阵列集合固定大小,doctrine-orm,arraycollection,Doctrine Orm,Arraycollection,我正在使用一个实体类型为Store的数据库。在OpeningHour实体中定义的一周中的每一天,每家商店都有营业时间。一个商店最多只能打开7个实体。这很好,因为我可以在业务逻辑中控制它 但是,商店的营业时间可以明确规定,也可以不明确规定。这意味着,当我更新开放时间时,我首先需要检查是否有已经定义的特定日期的开放时间。如果它们存在,我需要更新,否则我需要将一个新的OpeningHour实体添加到ArrayCollection 要获得商店的营业时间,我需要执行以下操作: $openingHours

我正在使用一个实体类型为Store的数据库。在OpeningHour实体中定义的一周中的每一天,每家商店都有营业时间。一个商店最多只能打开7个实体。这很好,因为我可以在业务逻辑中控制它

但是,商店的营业时间可以明确规定,也可以不明确规定。这意味着,当我更新开放时间时,我首先需要检查是否有已经定义的特定日期的开放时间。如果它们存在,我需要更新,否则我需要将一个新的
OpeningHour
实体添加到
ArrayCollection

要获得商店的营业时间,我需要执行以下操作:

$openingHours = $store->getOpeningHours();
$openingHours
变量现在应该拥有不超过7个实体的集合(但可能更少)

要更新开放时间,我有一个简单的数据结构,如下所示:

$values = array(
    array(
        'day' => "Monday",
        'start' => "00:00:00",
        'end' => "00:00:00",
    )
);
$values
数据结构在7天中的每一天最多可以有7个条目。My
OpeningHour
实体具有与此数据结构相同的属性


我的问题是,如何在
$openingHours
集合中轻松检查是否已存在具有特定日期名称的实体?

存储中

public function hasOpeningHoursOnDay($day) {
    return $this->openingHours->filter(function($key, $element) use ($day) {
        return $element->getDay() === $day;
    })->count() > 0;
}

这似乎是最直接的方法。谢谢