Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Народ, привет!
Пытаюсь реализовать формирование архива выбранных файлов и их загрузку. В контроллере написал метод
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'ом?
Всю таблицу вывода не хотелось бы засовывать в форму
Может у кого есть пример или дайте наводку)
Не в сети
Тема закрыта, решил!
создал форму с кнопкой "Скачать архив", в div с hidden собираю выбранные productId с помощью js и post'ом передаю в метод. усе..
Не в сети