Doctrine orm 规则阵列集合固定大小
我正在使用一个实体类型为Store的数据库。在OpeningHour实体中定义的一周中的每一天,每家商店都有营业时间。一个商店最多只能打开7个实体。这很好,因为我可以在业务逻辑中控制它 但是,商店的营业时间可以明确规定,也可以不明确规定。这意味着,当我更新开放时间时,我首先需要检查是否有已经定义的特定日期的开放时间。如果它们存在,我需要更新,否则我需要将一个新的Doctrine orm 规则阵列集合固定大小,doctrine-orm,arraycollection,Doctrine Orm,Arraycollection,我正在使用一个实体类型为Store的数据库。在OpeningHour实体中定义的一周中的每一天,每家商店都有营业时间。一个商店最多只能打开7个实体。这很好,因为我可以在业务逻辑中控制它 但是,商店的营业时间可以明确规定,也可以不明确规定。这意味着,当我更新开放时间时,我首先需要检查是否有已经定义的特定日期的开放时间。如果它们存在,我需要更新,否则我需要将一个新的OpeningHour实体添加到ArrayCollection 要获得商店的营业时间,我需要执行以下操作: $openingHours
OpeningHour
实体添加到ArrayCollection
要获得商店的营业时间,我需要执行以下操作:
$openingHours = $store->getOpeningHours();
$openingHours
变量现在应该拥有不超过7个实体的集合(但可能更少)
要更新开放时间,我有一个简单的数据结构,如下所示:
$values = array(
array(
'day' => "Monday",
'start' => "00:00:00",
'end' => "00:00:00",
)
);
$values
数据结构在7天中的每一天最多可以有7个条目。MyOpeningHour
实体具有与此数据结构相同的属性
我的问题是,如何在
$openingHours
集合中轻松检查是否已存在具有特定日期名称的实体?在存储中:
public function hasOpeningHoursOnDay($day) {
return $this->openingHours->filter(function($key, $element) use ($day) {
return $element->getDay() === $day;
})->count() > 0;
}
这似乎是最直接的方法。谢谢