123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- namespace App\Http\Middleware;
- use Closure;
- use Illuminate\Http\Request;
- use Symfony\Component\HttpFoundation\Response;
- use App\Helpers\SiteCache;
- use Liquid\Liquid;
- /**
- * Class LoadDistData 用中间件来获取distm网店信息
- */
- class LoadDistData
- {
- /**
- * Handle an incoming request.
- *
- * @param
- */
- public function handle(Request $request, Closure $next): Response
- {
- // 获取请求的域名
- $domain = getHost();
- // 先检查 custom_domain,如果没有找到,再检查 secondary_domain
- $dist=SiteCache::getDist($domain);
- // 如果缓存的结果是字符串,反序列化为对象
- if ($dist) {
- $dist = unserialize($dist);
- }
- //dd($dist);
- //// 如果是数组或对象,直接转换为对象
- // if (is_array($dist)) {
- // $dist = (object) $dist; // 将数组转换为对象
- // } elseif (is_string($dist)) {
- // // 处理字符串情况,假设字符串是 JSON 格式,可以尝试解析
- // $dist = json_decode($dist);
- // }
- // 如果找不到匹配的数据,直接返回404响应
- if (!$dist) {
- abort(404, 'site not found.');
- }
- // 全局共享 数据
- app()->instance('dist', $dist);
- // 将找到的 dist 数据添加到请求中,方便后续使用
- $request->attributes->set('dist', $dist);
- //保存到共享地方供其它地方用
- return $next($request);
- }
- }
|