【发布时间】:2020-12-17 01:57:08
【问题描述】:
我需要将一个子域名传递给所有视图,这样当它们生成带有route('namedRoute') 的路由时,用户最终将位于同一个子域中。
我最终创建了一个ViewServiceProvider,它注册了一个view composer,我从请求中获取子域,如下所示:
use Illuminate\Support\Facades\View as FView;
use Illuminate\View\View;
class ViewServiceProvider extends ServiceProvider {
FView::composer('*', function(View $view){
$view->with('subdomain', request()->route()->subdomain);
});
}
由于'*' 记录在Laravel docs 中,这种方式每次都会将子域变量传递给每个单一视图。
然后当我需要在任何视图中生成任何路由时,我总是必须像这样传递子域并且路由将正确生成。
{{ route('signInPage', ['subdomain' => $subdomain]) }}
那么,在 laravel 中是否有一些东西(比如 post view processing)我可以挂钩来自动填充子域,这样我现在就不必修改每个视图中的每个路由生成?
【问题讨论】: