Из того, что я получил из комментариев: я думаю, что лучше всего здесь посчитать количество пользователей, созданных каждый день месяца. Это даст вам нули в случае, если никто не зарегистрирован на данную дату. При этом вы, вероятно, просматриваете даты, проверяя количество зарегистрированных пользователей на каждую дату.
Например, давайте попробуем создать пользователей, созданных за последние 30 дней:
$results = [];
$startOfDay = now()->createMidnightDate();
for($i=0; $i<=30; $i++)
{
$total_count = User::whereBetween('created_at', [$startOfDay->subDays($i-1), $startOfDay->subDays($i)])
->count();
array_push($results[ $startOfDay->subDays($i)->format('d')], $total_count);
}
Теперь я думаю, что теперь вы можете работать с результатами из массива.
Вы пытаетесь сделать правильную вещь, но файл jar проблематичен - в него дважды входит одна и та же запись :( (Это допустимо для zip-файла, но не очень полезно - и как вы можете видеть, это заставляет jar
жаловаться.)
Если вы запустите
jar tvf antlrworks-1.2.3.jar > contents
, а затем посмотрите на сгенерированный файл содержимого
, вы увидите, что существуют различные дубликаты файлов. Вероятно, вы должны сообщить об этом в проект antlr (после проверки, что они еще не знают).
В качестве обходного пути вы можете извлечь содержимое файла jar, снова его собрать, а затем и у вас будет «рабочий» файл jar, который вы можете обновить. (Если вам нужно сделать это только один раз, вы можете просто извлечь, поместить туда файл, который вы хотите, а затем сжать весь пакет, а не обновлять его впоследствии. .)
If you're on OS X, try the Jar Inspector application. I used it to patch a javascript bug in wicket. You can open a jar file, and it lists all the contents. Navigate to the file you want to save (in this case, a .js file) and modify the file, then save the contents, and it takes care of modifying the .jar file for you. Not sure if this would work with .java files or not.
Вы можете выполнить ту же операцию с задачей Ant jar
.
<jar duplicate="preserve" jarfile="...">
your files
</jar>
атрибут duplicate со значением preserve позаботится о дубликате записи.
Как упоминалось здесь , атрибут обновления со значением «preserve» действительно сообщает вам, что дубликаты существуют, в следующем виде:
aPath/aFile already added, skipping
Если ваш файл находится в верхней части списка, задача jar должна выбрать tp собери сам, твой новый файл будет учтен.