0

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

但是,商店的营业时间可能会或可能不会明确定义。这意味着当我更新营业时间时,我首先需要检查是否已经定义了特定日期的营业时间。如果它们存在,我需要更新,否则我需要OpeningHourArrayCollection.

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

$openingHours = $store->getOpeningHours();

$openingHours变量现在应该包含不超过 7 个实体的集合(但可能更少)。

为了更新营业时间,我有一个简单的数据结构,看起来像这样:

$values = array(
    array(
        'day' => "Monday",
        'start' => "00:00:00",
        'end' => "00:00:00",
    )
);

对于 7 天的每一天,该$values数据结构最多可以有 7 个条目。我的OpeningHour实体具有与此数据结构相同的属性。

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

4

1 回答 1

1

里面Store

public function hasOpeningHoursOnDay($day) {
    return $this->openingHours->filter(function($key, $element) use ($day) {
        return $element->getDay() === $day;
    })->count() > 0;
}
于 2013-08-18T08:02:20.463 回答