Код: Выделить всё
public function myMethod(
Term $term,
int $id,
?bool $includeRecords = false,
?int $page = 1,
?int $count = 100
) {
$currentDefaultSegment = Segment::DEFAULT_SEGMENTS[$id];
$filterFieldName = $currentDefaultSegment['type'] === 'opener' ? 'lastOpenDate' : 'lastClickDate';
$query = DB::connection(MYSQL_DB)
->table("my_table")
->where('status', 1)
->where('id', $term->getId())
->whereRaw("{$filterFieldName} > CURDATE() - INTERVAL {$currentDefaultSegment['duration']} DAY");
if ($includeRecords) {
return $query->limit($count)->offset(($page - 1) * $count)->get(); // It return Collection
}
return $query->count(); // It return int
}
Сообщение об ошибке: невозможно вызвать метод Transform() в Illuminate\Support\Collection|int.
Вот код, вызывающий указанный выше метод.
Код: Выделить всё
$this->myMethod(prams here)->transform(....)
Вопрос: Как определить и заставить тип возвращаемого значения быть только Collection или только Int в зависимости от к вариантам использования?
Я пробовал создать 2 метода вместо одного в соответствии с условиями, но тело метода Почти такое же, поэтому я не думаю, что создавать 2 — хорошая идея методы. Но понятия не имею, как решить проблему.
Подробнее здесь: https://stackoverflow.com/questions/791 ... v7-laravel