我正在使用类型为Store的实体的数据库。每个商店都有一个在OpeningHour实体中定义的每周的每一天的营业时间。商店最多只能有7个OpeningHour实体。这很好,因为我可以在业务逻辑中控制它。
但是,商店的营业时间可能会或可能不会明确定义。这意味着当我更新开放时间时,我首先需要检查是否已经定义了特定日期的开放时间。如果它们存在,我需要更新,否则我需要向OpeningHour
添加新的ArrayCollection
实体。
要获得商店的营业时间,请执行以下操作:
$openingHours = $store->getOpeningHours();
$openingHours
变量现在应该有不超过7个实体的集合(但可能更少)。
要更新营业时间,我有一个简单的数据结构,如下所示:
$values = array(
array(
'day' => "Monday",
'start' => "00:00:00",
'end' => "00:00:00",
)
);
{7}数据结构每7天最多可包含7个条目。我的$values
实体与此数据结构具有相同的属性。
我的问题是,如果已经存在具有特定日期名称的实体,我如何在OpeningHour
ollection中轻松检查?
答案 0 :(得分:1)
在Store
内:
public function hasOpeningHoursOnDay($day) {
return $this->openingHours->filter(function($key, $element) use ($day) {
return $element->getDay() === $day;
})->count() > 0;
}