Обновление файла в банке бросает ZipException

Из того, что я получил из комментариев: я думаю, что лучше всего здесь посчитать количество пользователей, созданных каждый день месяца. Это даст вам нули в случае, если никто не зарегистрирован на данную дату. При этом вы, вероятно, просматриваете даты, проверяя количество зарегистрированных пользователей на каждую дату.

Например, давайте попробуем создать пользователей, созданных за последние 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);
}

Теперь я думаю, что теперь вы можете работать с результатами из массива.

7
задан Michael Anderson 28 August 2015 в 03:46
поделиться

3 ответа

Вы пытаетесь сделать правильную вещь, но файл jar проблематичен - в него дважды входит одна и та же запись :( (Это допустимо для zip-файла, но не очень полезно - и как вы можете видеть, это заставляет jar жаловаться.)

Если вы запустите

jar tvf antlrworks-1.2.3.jar > contents

, а затем посмотрите на сгенерированный файл содержимого , вы увидите, что существуют различные дубликаты файлов. Вероятно, вы должны сообщить об этом в проект antlr (после проверки, что они еще не знают).

В качестве обходного пути вы можете извлечь содержимое файла jar, снова его собрать, а затем и у вас будет «рабочий» файл jar, который вы можете обновить. (Если вам нужно сделать это только один раз, вы можете просто извлечь, поместить туда файл, который вы хотите, а затем сжать весь пакет, а не обновлять его впоследствии. .)

8
ответ дан 7 December 2019 в 03:21
поделиться

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.

0
ответ дан 7 December 2019 в 03:21
поделиться

Вы можете выполнить ту же операцию с задачей Ant jar .

<jar duplicate="preserve" jarfile="...">
   your files
</jar>

атрибут duplicate со значением preserve позаботится о дубликате записи.

Как упоминалось здесь , атрибут обновления со значением «preserve» действительно сообщает вам, что дубликаты существуют, в следующем виде:

 aPath/aFile already added, skipping

Если ваш файл находится в верхней части списка, задача jar должна выбрать tp собери сам, твой новый файл будет учтен.

1
ответ дан 7 December 2019 в 03:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: