我正在创建一个 SaaS 应用程序(谁不是?),并且像大多数 SaaS 应用程序一样,我采用了帐户子域方法。我的路线文件如下所示:
$router->group(['domain' => '{account}.example.com'], function($router)
{
$router->get('/', function()
{
return response('Hello, world.');
});
});
然后我决定在我的RouteServiceProvider
文件中添加一些路由参数验证和绑定:
public function boot(Router $router)
{
parent::boot($router);
$router->pattern('account', '[a-z0-9]+');
$router->bind('account', function($subdomain)
{
return Account::whereSubdomain($subdomain)->firstOrFail();
});
}
但是,这些实际上似乎并没有被触发。我知道这一点,因为我可以dd('here?')
在bind
通话中添加类似的内容,并且从未触发过。我还可以将我的account
模式过滤器减少到类似的东西[0-9]+
,如果我在子域中包含字母,它仍然会匹配。
我究竟做错了什么?如何获取路由模式和绑定以处理domain
路由组键中的变量?