首页 > 解决方案 > 每个客户的 laravel 8 个多子域

问题描述

我需要让每个客户都成为特殊的子域

例子 :

company1.site.com

company2.site.com

尝试代码,但它可以在 localhost 上正常工作,但不能在共享主机上工作

class CheckTenantUser
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $has_access = $request->session()->get('has_access');
        if ($has_access) {
            return $next($request);
        }
        list($subdomain) = explode('.', $request->getHost(), 2);
        $tenant = Client::where('slug', $subdomain)->where('status',1)->firstOrFail();
        $request->session()->put('currentClient', $tenant);
        if ($request->user() == null) {
            return $next($request);
        }
        $has_access = $request->user()->tenant == $tenant;
        if (!$tenant) {
            return redirect('/login')->with('no_access', true);
        } else {
            $request->session()->put('has_access', true);
        }

        return $next($request);
    }
}

现在从数据库中检查客户端,但通过 slug 设置子域

我需要如何让它在像 localhost 这样的共享主机上工作

标签: laravel

解决方案


您可以查看可用的第 3 方包 - https://tenancyforlaravel.com/


推荐阅读