15061959991 1adf627c0d feat: 财务系统二次开发 - 营销账户账单功能
- 基础环境:Docker 部署配置,源码挂载实时同步
- 修复:super_admin 权限补全、登录重定向循环
- 开发:店铺营销账户账单 - 抖音账户(15字段汇总账单)
- 开发:店铺营销账户账单 - 淘系支付宝账户(8字段流水账单)
- 开发:店铺营销账户账单 - 拼多多账户(7字段流水账单)
- 业务页面导航集成:config/business_navigation.php + Business\Pages 控制器
- 各平台独立表结构和视图,互不影响
2026-07-21 18:43:52 +08:00

78 lines
2.0 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Arr;
class Dropzone
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (! in_array($request->method(), ['POST', 'PATCH', 'PUT'])) {
return $next($request);
}
$multiple = false;
foreach ($request->all() as $key => $value) {
if (! is_array($value)) {
continue;
}
if ($key == 'setting' && Arr::has($value, 'company_logo')) {
continue;
}
$files = [];
$uploaded = [];
foreach ($value as $index => $parameter) {
// single file uploaded..
if (! is_array($parameter) && ! $multiple) {
if (! Arr::has($value, 'dropzone')) {
continue;
}
$request->request->set('uploaded_' . $key, $value);
unset($request[$key]);
break;
}
// multiple file uploaded..
if (is_array($parameter)) {
if (! Arr::has($parameter, 'dropzone')) {
$files[] = $parameter;
continue;
}
} else if (is_object($parameter)) {
if (empty($parameter->dropzone)) {
$files[] = $parameter;
continue;
}
}
$multiple = true;
$uploaded[] = $parameter;
}
if ($multiple && $uploaded) {
$request->request->set('uploaded_' . $key, $uploaded);
$request->request->set($key, $files);
}
}
return $next($request);
}
}