Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 04.05.2022 22:49:47

формирование архива выбранных файлов и их загрузку. ZipArchive

Народ, привет!
Пытаюсь реализовать формирование архива выбранных файлов и их загрузку. В контроллере написал метод
    public function zipArchiveFile(Request $request)
    {
        $zip = new ZipArchive;
        $today = date("d-m-Y");
        $fileName = $today.'_archive.zip';
        //dd($fileName);
        if($zip->open(public_path($fileName), ZipArchive::CREATE) === TRUE);
        {
            $productsIds = (isset($request->product_checked)) ? $request->product_checked : [];
            dd($productsIds);
            $files = [];
            foreach($productsIds as $productId) 
            {
                $productFile = Product::where('id', $productId)->value('file');
                if(!empty($productFile)){
                    $files[] = File::files(public_path($productFile));
                }
            }
            //dd($files);
            foreach($files as $key => $value)
            {
                $relativeNameInZipFile = basename($value);
                $zip->addFile($value, $relativeNameInZipFile);
            }
            $zip->close();
        }
        return response()->download(public_path($fileName));
    }
в blade                     
<td>
    <input type="checkbox" name="product_checked[]" value="{{ $product->id }}">
</td>

Вопрос, как из blade передать product_checked[] ?
в связке с js?
Или отдельным методом получать checked значения и обращаться к ним в zipArchiveFile через $this? Например через js post'ом?
Всю таблицу вывода не хотелось бы засовывать в форму
Может у кого есть пример или дайте наводку)

Не в сети

#2 10.05.2022 20:12:10

Re: формирование архива выбранных файлов и их загрузку. ZipArchive

Тема закрыта, решил!
создал форму с кнопкой "Скачать архив", в div с hidden собираю выбранные productId с помощью js и post'ом передаю в метод. усе..

Не в сети

Подвал раздела